【问题标题】:OnCheckedChanged not being fired on re-population of the formOnCheckedChanged 不会在重新填充表单时被触发
【发布时间】:2017-07-03 13:57:50
【问题描述】:

我有一个 Gridview,它有两个按钮 Edit 和 Delete。

在编辑时,行命令会调用一个名为“Populate()”的函数,该函数会填充位于面板中网格上方的表单(设置为 visible = true )。

问题:

我有一个复选框“cbX”、一个文本框“txtX”和一个下拉列表“ddlX”(Visible = false)

如果选择了 cbX => ddlX.Visible = true 和 txtX.Enabled = false(我有一个 onCheckChangeed 函数)

当我选择在网格中编辑最初具有 cbX.Checked = true 的条目时,当用户尝试取消选中该复选框时,我会遇到问题。没有返回错误,当我需要它来隐藏 ddlX 并启用 txtX 时,它根本不会调用 onCheckChanged

<asp:TextBox runat="server" ID="txtX" Width="180px"></asp:TextBox>

<asp:CheckBox runat="server" ID="cbX" AutoPostBack="true" Text="Unable to Obtain " OnCheckedChanged="cbX_CheckedChanged" />

<asp:DropDownList runat="server" ID="ddlX" DataTextField="Name" DataValueField="Code" AppendDataBoundItems="True" OnSelectedIndexChanged="ddlX_SelectedIndexChanged" Width="350px" AutoPostBack="true" CausesValidation="true" Enabled="false" Visible="false"></asp:DropDownList>

【问题讨论】:

  • 将你的DataBind绑定到if (!isPostBack)Page_Load
  • 关心详细说明它是如何影响它的。 “if (! IsPostBack)”也包含一个填充网格的函数。我应该在那里绑定什么?注意:在页面加载时,我指定的 3 个字段是隐藏的,直到用户选择从网格中编辑一个字段。 @Asif.Ali
  • 唯一的问题是当我选择编辑字段后取消选中复选框(第一次)时,checkchanged 事件没有被触发,但在选中和取消选中后工作正常。
  • 这是因为CheckBox 不是gridview 控件。您必须在 gridView RowBinding 事件中附加 OnCheckChanged 事件。

标签: c# asp.net gridview oncheckedchanged


【解决方案1】:

想通了。 我需要手动添加:

cbX.CheckedChanged += new EventHandler(this.cbX_CheckedChanged);

在重新填充表单的函数中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-14
    • 2019-08-10
    • 1970-01-01
    • 2011-04-11
    • 1970-01-01
    相关资源
    最近更新 更多