我的网格视图中有一个隐藏字段,但无法获得其价值的代码可能有人可以找到问题。
HTML:
<asp:TemplateField HeaderText="TweetID" Visible="false">
<ItemTemplate>
<asp:HiddenField ID="TweetID" runat="server" Value='<%#Eval("TweetID") %>' />
</ItemTemplate>
</asp:TemplateField>
的.cs:
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
int index = Convert.ToInt32(e.RowIndex);
HiddenField tid = GridView1.Rows[index].FindControl("TweetID") as HiddenField;
//Response.Write(tid.Value);
TweetHelper.RemoveTweet( Convert.ToInt32(tid.Value), 1);
}
顺便说一下,响应没有写任何内容。
答案 0 :(得分:0)
您的代码应该可以正常工作。但是找到控件的另一种方法是
GridViewRow row = GridView1.Rows[e.RowIndex];
HiddenField hdn = (HiddenField)row.FindControl("TweetID");
string value = hdn.Value;
或只是
var tweetid = ((HiddenField)GridView1.Rows[e.RowIndex].FindControl("TweetID")).Value;
答案 1 :(得分:0)
根据您上面的代码,您所做的事情是矫枉过正的。
使TweetID
成为Gridview.DataKey。
如果这不是一个选项,请将您的Delete
按钮转换为模板字段,并将TweetID
CommandArgument
添加到Delete
按钮。