C# 编辑文本框时,如何读取gridview单元格?
我有点进退两难,我不知道如何解决这个问题。如果我正在编辑一个gridview,我正在读取这样的行C# 编辑文本框时,如何读取gridview单元格?,c#,asp.net,visual-studio-2010,gridview,C#,Asp.net,Visual Studio 2010,Gridview,我有点进退两难,我不知道如何解决这个问题。如果我正在编辑一个gridview,我正在读取这样的行 cmd.Parameters.Add("@X", SqlDbType.Char).Value = ((TextBox)GridView1.Rows[e.RowIndex].Cells[15].Controls[0]).Text; cmd.Parameters.Add("@Y", SqlDbType.Char).Value = ((TextBox)GridView1.Rows[e.RowIndex
cmd.Parameters.Add("@X", SqlDbType.Char).Value = ((TextBox)GridView1.Rows[e.RowIndex].Cells[15].Controls[0]).Text;
cmd.Parameters.Add("@Y", SqlDbType.Char).Value = ((TextBox)GridView1.Rows[e.RowIndex].Cells[15].Controls[0]).Text;
当gridview处于编辑模式时,单元格X和Y都有文本框,因为这是默认的编辑模式。我手动创建了这些列,我希望单元格X为“只读”。如何更改代码,以便在没有文本框的情况下读取单元格X?非常感谢您的帮助。谢谢 这可能有点太简单了,但是:
var lblHolder = (Label) GridView1.FindControl("lblMyLabel")
cmd.Parameters.Add("@X", SqlDbType.Char).Value = lblHolder.Text
直接搜索你的标签(或任何你认为有价值的东西)
然后,您的网格视图可以如下所示
<asp:GridView ID="gvData" runat="server" AutoGenerateColumns="false" Width="95%" Font-Names="Verdana">
<RowStyle Height="40px" />
<Columns>
<asp:TemplateField HeaderText="Col1">
<ItemTemplate>
<asp:Label ID="lblMyLabel" runat="server"
Text='<%# eval("MyDataBaseField")%>' />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
然后您只需要将数据源连接到网格。当然,还有很多其他方法可以做到这一点,但通过控件ID搜索控件要比在数组中计算控件的编号容易得多你的问题没有意义。你能澄清你对X和Y的意图吗?编辑模式和什么有什么关系?是的,我有点难以理解这个问题。如果您只使用GridView.FindControl(“lblMyLabel”),它将简化您对文本框的请求。如果您这样做了,您甚至不需要查找文本框,只需在ViewMode中搜索标签,而不是在Edit Mode中搜索文本框Yes mikey这正是我想要做的。我怎样才能为gridview创建这样一个标签呢?等等,我正试图写出一个完整的答案,所以我必须将该列转换为templatefield并添加一个标签。标签只是在视图模式下存储数据的一种方式,您可以使用任何您想要的控件。然后搜索它并抓住它的价值