隐藏字段值找不到值
Hidden Field Value not finding value
我的 gridview 中有一个 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);
}
顺便说一下,响应什么也没写。
您的代码应该可以工作fine.However另一种查找控件的方法是
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;
根据您上面的代码,您所做的有点过分了。
要么将 TweetID
设为 Gridview.DataKey。
或者如果这不是一个选项,请将您的 Delete
按钮转换为模板字段并将 TweetID
作为 CommandArgument
添加到 Delete
按钮。
我的 gridview 中有一个 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);
}
顺便说一下,响应什么也没写。
您的代码应该可以工作fine.However另一种查找控件的方法是
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;
根据您上面的代码,您所做的有点过分了。
要么将 TweetID
设为 Gridview.DataKey。
或者如果这不是一个选项,请将您的 Delete
按钮转换为模板字段并将 TweetID
作为 CommandArgument
添加到 Delete
按钮。