zoukankan      html  css  js  c++  java
  • 关于asp.net中绑定的模版列CheckBox无法触发OnCheckedChanged事件的问题

    以下是代码:

    1 <ISWebGrid:WebGridColumn Caption="首页显示" InputRequired="true" Name="Title" Width="70px"
    2 ColumnType="Template" DataMember="IsShow" EditType="NoEdit">
    3 <CellTemplate>
    4 <asp:CheckBox runat="server" ID="cbIsShow" Checked='<%# Bind("IsShow") %>' EnableViewState="true"
    5 OnCheckedChanged="cbIsShow_CheckedChanged" Enabled="false" />
    6 </CellTemplate>
    7 </ISWebGrid:WebGridColumn>
    1 protected void cbIsShow_CheckedChanged(object sender,EventArgs e)
    2 {
    3 Response.Write("<script>alert(\"cbIsShow_CheckedChanged\");</script>");
    4 }

    当点击模版列的CheckBox时,后台的cbIsShow_CheckedChanged方法总是不执行。

    google中有许多种答案如:

    1.AutoPostBack="True"没写;

    2.EnableViewState要设为false;

    试过后都不行。

    当我把绑定去掉以后,cbIsShow_CheckedChanged方法正常运行。

    我给的解释是:

    OnCheckedChanged是在CheckBox的Checked属性变化之后才会满足事件触发条件的,模版列中的CheckBox的Checked属性绑定了IsShow字段,在没有改变数据源的情况下,CheckBox的Checked属性值是不会改变的,不满足事件触发条件,所以不运行事件处理函数也是正常的。

    也许可行的方法为:

    1.为CheckBox添加客户端事件onClicked,在js中调用后台的方法。

  • 相关阅读:
    C#学习三之几个关键字Static,ref&out,get&set,readonly
    C#学习二之浅析var类型和enum枚举类型
    C#学习一之HelloWorld
    泛型(二)
    泛型(一)
    JavaScript 使用
    JavaScript
    C# 自定义控件制作和使用实例(winform)
    ThinkPHP 参数绑定原理
    处理jQuery append加入的元素 绑定事件无效的方法
  • 原文地址:https://www.cnblogs.com/larson/p/1987248.html
Copyright © 2011-2022 走看看