我在网格视图中添加复选框代码示例在这里
<asp:TemplateField HeaderText="N/A" SortExpression="NotAvailableQuantity">
<ItemTemplate>
<asp:CheckBox ID="chk_NA_ItemTemp" Enabled="false" Checked='<%# Bind("StockAvailable") %>' runat="server" />
</ItemTemplate>
<EditItemTemplate>
<asp:CheckBox ID="chk_NA_EditTemp" runat="server" />
</EditItemTemplate>
<FooterTemplate>
<asp:CheckBox ID="chk_NA_FootTemp" ClientIDMode="Static" OnCheckedChanged="OnChkChangd_chk_NA_FootTemp" AutoPostBack="true" runat="server" />
</FooterTemplate>
<HeaderStyle HorizontalAlign="right" />
<ItemStyle HorizontalAlign="right" />
</asp:TemplateField>
我将CS文件中的已检查更改事件添加为
protected void OnChkChangd_chk_NA_FootTemp(object sender, EventArgs e)
{
CheckBox chk = (CheckBox)sender;
GridViewRow row = (GridViewRow)chk.Parent.Parent;
if (chk.Checked == true)
{
((Label)row.FindControl("Footer_txt_AvailableQuantity")).Text = DateTime.Now.ToString();
}
else
{
}
}
但是我收到了这个错误。
不包含'OnChkChangd_chk_NA_FootTemp'的定义,并且没有扩展方法'OnChkChangd_chk_NA_FootTemp'可以找到接受类型'ASP.setup_saleablestock_aspx'的第一个参数(你是否缺少using指令或汇编引用?)
答案 0 :(得分:0)
您已将错误的事件绑定到复选框。
将OnCheckedChanged="OnChkChangd_chk_NA_FootTemp_CheckedChanged"
添加到您的checkbox
<asp:CheckBox ID="chk_NA_FootTemp" ClientIDMode="Static" OnCheckedChanged="OnChkChangd_chk_NA_FootTemp_CheckedChanged" AutoPostBack="true" runat="server" />
答案 1 :(得分:0)
标记与代码隐藏之间的事件名称不同:
OnChkChangd_chk_NA_FootTemp_CheckedChanged
vs OnChkChangd_chk_NA_FootTemp
修复一个或另一个以使名称匹配。
答案 2 :(得分:0)
您的活动名称是
protected void OnChkChangd_chk_NA_FootTemp_CheckedChanged(object sender, EventArgs e)
因此,请更改复选框OnCheckedChanged="OnChkChangd_chk_NA_FootTemp_CheckedChanged"
<asp:CheckBox ID="chk_NA_FootTemp" ClientIDMode="Static" OnCheckedChanged="OnChkChangd_chk_NA_FootTemp" AutoPostBack="true" runat="server" />
它应该是OnCheckedChanged="OnChkChangd_chk_NA_FootTemp_CheckedChanged"
<asp:CheckBox ID="chk_NA_FootTemp" ClientIDMode="Static" OnCheckedChanged="OnChkChangd_chk_NA_FootTemp_CheckedChanged" AutoPostBack="true" runat="server" />
你提到过“AutoPotsBack = true”所以请调用你的活动!IsPostBack
if (!IsPostBack)
{
\\Grid view event
}
答案 3 :(得分:0)
我看到了你的代码,你的代码看起来很好,我不知道为什么它不起作用。
但我想,你错过了一件事。
在控制事件触发之前调用DataBind时会出现问题
您需要添加! IspOstBack 在你的页面内部加载事件。你必须调用!IsPostBack中的网格绑定代码。因为您在复选框中使用了AutoPotsBack = true,这有助于调用(重新加载)页面加载。因此,如果您不使用!IsPostBack,那么您的网格将重新绑定,您的复选框将重新呈现。因此,改变事件不会发生。
所以请用这种方式
void page_load()
{
if(!IsPostBack)
{
// call Grid view Binding code here
}
}
如果我的解决方案无效,请尝试以下方法