在Row命令中获取Gridview的内容
这是UI中的代码
--
我想点击按钮编辑时,我想在同一页面的文本框中获取所有字段的详细信息。 我试过用:
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e) { if (e.CommandName == "Edit") { GridViewRow Row = (GridViewRow)(((Button)e.CommandSource).NamingContainer); string text = Row.Cells[2].Text; }
但我在字符串文本中得到“”
这是我的网格视图的屏幕截图
- 您可以使用存储在
command argument
的行索引来查找单击“Edit
按钮的行。 - 现在,您可以在该行中找到单元格索引位置为2的
TextBox
。 -
然后获取
TextBox
的Text
。protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e) { if(e.CommandName == "Edit") { int index = Convert.ToInt32(e.CommandArgument); GridViewRow clickedRow = CustomersGridView.Rows[index]; TextBox myTextBox = (TextBox)clickedRow.Cells[2].FindControl("TextBoxName"); string text = myTextBox.Text; } }
在ASPX页面中,您需要处理行命令事件,如下所示:
您可以使用以下代码访问GridViewRow
( 注意: Button
必须是具有CommandName/CommandArgument
的控件 ):
var row = (GridViewRow)(((Button)e.CommandSource).NamingContainer);
然后只需在found row
上使用FindControl
方法来查找目标控件, 例如。 :
var txtSomething = (TextBox)row.FindControl("txtSomething");
您还可以使用row.RowIndex
访问row.RowIndex
。
我建议避免使用row.Cells[INDEX].FindControl()
,只是row.FindControl
工作得很好,针对特定的cell
不好,如果你改变标记并添加/删除一些列,(也许)你需要更新INDEX
也是如此,所以不要这样做 🙂
您需要在单元格中找到TextBox控件并从中获取值。
string text = (TextBox)Row.FindControl["MyTextBoxId"].Text;
- 我的ASP.NET应用程序如何从web.config自动获取SMTP设置?
- asp.net mvc 3razor。 导航到查看表tr单击
- 为什么我的EF Code First预生成视图无效?
- 如何在编辑该项目并发布后刷新sitecore树节点
- 如何在c#中获取禁用下拉列表的选定值
- 如何在ASP.NET Core Web Api中完成版本控制
- 在浏览器中加载虚拟目录名时,会话在AcquireRequestState中为空,但在加载Default.aspx时不为null
- .Replace(Environment.NewLine,“”)适用于localhost但不是我上传网站到主机时
- 无法从ASP.NET调用DLL