我有一个名为dtAppend
的网格视图。当我按下删除按钮时,我希望所选行记录从用户表中删除。
我首先在网格视图中使用了button field
,如下:
<asp:ButtonField Text="Delete" CommandName="DeleteRow" ControlStyle-CssClass="btn btn-danger btn-small" ControlStyle-ForeColor="White" />
<asp:TemplateField visible="false" ItemStyle-Width="0px">
<ItemTemplate>
<asp:HiddenField ID="HiddenField" Visible="false" runat="server" Value='<%# Eval("userId") %>' />
</ItemTemplate>
</asp:TemplateField>
我的客户要求显示JavaScript警告,点击“是”后记录应该被删除。我不能为按钮字段编写onClientClick
,所以我被迫使用普通的Asp按钮。
在gridview的rowCommand
事件中,我正在使用以下代码获取隐藏字段的值:
if (e.CommandName == "DeleteRow")
{
GridViewRow row = dtAppend.Rows[Convert.ToInt32(e.CommandArgument)];
hidden1 = (HiddenField)row.Cells[6].FindControl("HiddenField");
string text = Convert.ToString((HiddenField)row.Cells[6].FindControl("HiddenField"));
Session["dtIdDel"] = hidden1.Value;
}
我已经将值存储在Session中,但我需要让上述代码在Button_Click事件中起作用。
protected void deleteButton_Click(object sender, EventArgs e)
{
GridViewRow row = dtAppend.Rows[Convert.ToInt32(e.CommandArgument)];
hidden1 = (HiddenField)row.Cells[6].FindControl("HiddenField");
string text = Convert.ToString((HiddenField)row.Cells[6].FindControl("HiddenField"));
Session["dtIdDel"] = hidden1.Value;}
这是 'e.CommandArgument' 报错的地方。
我不能在普通按钮点击事件中使用上述代码,因为在 e.CommandArgument
中会报错。
有什么帮助吗?