如何在asp.net中的GridView TextBox和/或DropDownListBoxs中显示数据

时间:2011-09-22 11:02:20

标签: asp.net

我的客户提出了如下要求:

他只想在GridView中插入,更新,删除记录。他希望所有数据都存在于TextBoxes和DropDownList控件中(即不在标签控件中)。如果他想更新任何记录,那么他想直接更新那里的记录并点击“更新”按钮。他不想单击“编辑”链接以在“编辑”模式下获取记录。

如何实现此功能?我还应该在设计GridView时考虑引用列。即一些模板也将包含DropDownList项目。

任何人都可以建议我怎么做。一些建议或一些学习的链接是值得赞赏的。

请帮我解决这个问题。

2 个答案:

答案 0 :(得分:1)

结帐此链接:http://geekswithblogs.net/dotNETvinz/archive/2009/08/09/adding-dynamic-rows-in-asp.net-gridview-control-with-textboxes-and.aspx。 在这个例子中,作者只使用TextBoxes,但是DropDownList可以以类似的方式使用,从链接中你至少可以了解在GridView单元格中使用控件然后检索它们包含的数据。

答案 1 :(得分:1)

您可以在模板字段

中将所需字段添加到网格视图中
     <asp:TemplateField HeaderText="fieldname" >
        <ItemTemplate>
             <asp:TextBox ID="txbType" Text='<%# Eval("field") %>' runat="server"></asp:TextBox>
        </ItemTemplate>
    </asp:TemplateField>  

然后在后端代码中

 protected void Gv_RowUpdating(object sender, GridViewUpdateEventArgs e)
        {
           int index = Convert.ToInt32(e.RowIndex.ToString());
           GridViewRow row = GV.Rows[index];
           var txbName = row.FindControl("txbType") as TextBox;            
           string name = "";
           if (txbName != null)
           {
              name = txbName.Text.Trim();
           }
           if (true)
                // your update function          
        }

删除

相同
protected void Gv_RowDeleting(object sender, GridViewDeleteEventArgs e)
    {
    }