隐藏字段值未找到值

时间:2016-04-24 16:29:11

标签: c# asp.net gridview webforms hiddenfield

我的网格视图中有一个隐藏字段,但无法获得其价值的代码可能有人可以找到问题。
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);
}

顺便说一下,响应没有写任何内容。

2 个答案:

答案 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按钮。