尝试使用 vb.net 在 asp.net 中获取 gridview 的当前单元格值
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/15779343/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-17 13:05:41 来源:igfitidea点击:
Trying to get current cell value of gridview in asp.net using vb.net
提问by V Partap Singh Salathia
Protected Sub GridView1_RowUpdating(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewUpdateEventArgs) Handles GridView1.RowUpdating
sqlqrystrng = "UPDATE temp_zone set zone_id = @zoneid, zone_name = @zonename WHERE auto_id = @autoid"
Dim strautoid As String = GridView1.Rows(e.RowIndex).Cells(1).Text()
End Sub
but strautoid always contains "" .....What to do
但是 strautoid 总是包含 "" ..... 怎么办
html of gridview
网格视图的html
<asp:GridView ID="GridView1" runat="server" "AutoGenerateColumns="False" GridLines="None">
<RowStyle BackColor="#CCFFFF" ForeColor="#333333" />
<Columns>
<asp:TemplateField HeaderText="Auto Id">
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Eval("auto_id") %>'>
</asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Zone Id">
<ItemTemplate>
<asp:Label ID="Label2" runat="server" Text='<%# Eval("zone_id") %>'>
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="grdtxt_id" runat="server" Text='<%# Eval("zone_id") %>'>
</asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
<asp:CommandField HeaderText="Edition" ShowEditButton="True" CausesValidation="False" />
<asp:CommandField HeaderText="Deletion" ShowDeleteButton="True" CausesValidation="False" />
</Columns>
<AlternatingRowStyle BackColor="White" ForeColor="#284775" />
</asp:GridView>
回答by Sagar Hirapara
You Have to Try this
Dim strautoid As String = GridView1.Rows(e.RowIndex).Cells(1).Text() instead of this ,try below
TableCell cl = GridView1.Rows[e.RowIndex].Cells[1];
(Label) lbl=(Label).cl.FindControl("Your Label ID");
Dim strautoid As String=lbl.Text;
回答by 5uperdan
I haven't checked this exactly, but you need something like:
我还没有完全检查过这个,但你需要这样的东西:
Dim lblCell as label = GridView1.Rows(e.RowIndex).Cells(1).FindControl("labelID")
Dim strautoid As String = lblCell.Text
As i say, haven't checked exactly but the key to getting this correct is in the FindControl method, i hope that helps.
正如我所说,还没有完全检查过,但正确检查的关键在于 FindControl 方法,我希望能有所帮助。

