2013-04-27 52 views
2

動態的GridView我有一個GridView將數據添加到在ASp.net

<asp:GridView ID="gvOrders" runat="server"> 
      <Columns> 
       <asp:BoundField DataField="Item" HeaderText="Item" SortExpression="Item" /> 
       <asp:TemplateField> 
        <ItemTemplate> 
         <asp:HiddenField ID="hdnItemID" runat="server" /> 
        </ItemTemplate> 
       </asp:TemplateField> 
       <asp:BoundField DataField="Quantity" HeaderText="Quantity" SortExpression="Quantity" /> 

      </Columns> 
     </asp:GridView> 

........................... ..................

現在我想添加行到gridview與從文本框/ DropdownList中獲取數據。 然後如何訪問這個GridData行。

回答

0

假設您的GridView數據源是名爲Dtable的DataTable;

DataRow row = new DataRow();    

row["columnName"] = textBox1.Text; 

DTable.Rows.Add(row); 

gvOrders.DataSource=Dtable; 
gvOrders.DataBind(); 
+0

行[ 「列名」]爲什麼要用? – 2014-11-07 04:56:55

0

請試試這個,它將如何幫助你。

ASPX頁面:

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" CellPadding="4" ForeColor="#333333" GridLines="None"> 
       <AlternatingRowStyle BackColor="White" ForeColor="#284775" /> 
       <Columns> 

        <asp:BoundField DataField="Name" HeaderText="Name" SortExpression="Name"></asp:BoundField>       
        <asp:BoundField DataField="Number" HeaderText="Number" SortExpression="Number"></asp:BoundField>       
       </Columns> 

    </asp:GridView> 

C#代碼:

DataTable dt; 
protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!Page.IsPostBack) 
    { 
     dt = new DataTable(); 
     MakeDataTable(); 
    } 
    else 
    { 
     dt = (DataTable)ViewState["DataTable"]; 
    } 
    ViewState["DataTable"] = dt; 
} 

private void MakeDataTable() 
{ 
    dt.Columns.Add("Name"); 
    dt.Columns.Add("Number"); 
} 

protected void Button2_Click(object sender, EventArgs e) 
{ 
    AddToDataTable(); 
    BindGrid(); 
} 

private void AddToDataTable() 
{ 
    DataRow dr = dt.NewRow(); 
    dr["Name"] = txtName.Text; 
    dr["Number"] = txtNumber.Text; 
    dt.Rows.Add(dr); 
} 

private void BindGrid() 
{ 
    GridView1.DataSource = dt; 
    GridView1.DataBind(); 
}