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中调用后台的方法。

  • 相关阅读:
    dota监测
    R0:前瞻
    Python基础
    c++成员函数
    异步IO简介
    使用自定义类型做qmap,qhash的key
    c++ primer 7 函数
    c++ primer 6 语句
    c++ primer 5 表达式
    c++ primer 4 数组和指针
  • 原文地址:https://www.cnblogs.com/larson/p/1987248.html
Copyright © 2011-2022 走看看