【问题标题】:How to attach onchange event to CheckBoxList? Missing InputAttributes?如何将 onchange 事件附加到 CheckBoxList?缺少输入属性?
【发布时间】:2010-11-25 20:26:15
【问题描述】:

使用以下代码为 CheckBoxList 设置 onchange 事件不起作用。

chkListUserGroup.Attributes.Add("onchange", "document.forms[0].isRecordModified.value='true';");

如何为 CheckBoxList 设置 onchange 事件?

【问题讨论】:

  • 您是否遇到任何错误?渲染出来的 HTML 是什么样子的?
  • 是的,只要你给出,我们就找不到准确的答案。
  • onchange 事件被附加到标签元素而不是输入标签本身。

标签: asp.net checkboxlist


【解决方案1】:

使用onclick事件,

 protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            CheckBoxList1.Items.Add("A");
            CheckBoxList1.Items.Add("B");
            CheckBoxList1.Items.Add("C");
            CheckBoxList1.Items.Add("D");

            foreach (ListItem item in CheckBoxList1.Items)
            {
                item.Attributes.Add("onclick", "document.forms[0].isRecordModified.value=document.activeElement.checked");    
            }
        }
    }

【讨论】:

  • 这是我设法捕捉复选框列表事件的唯一方法
【解决方案2】:

使用此代码处理vb.net中复选框列表中的点击事件

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If Not IsPostBack Then
            Dim li As ListItem
            For Each li In CheckboxList1.Items
                li.Attributes.Add("onclick", "alert('hello')")
            Next
        End If

【讨论】:

    【解决方案3】:

    实际上它应该可以工作。因为我在我的代码中写了一些东西并且它起作用了。看来您需要通过简单地更改它来检查您的 javascript 代码 alert('hello');

     foreach (ListItem item in CheckBoxList1.Items)
     {
        item.Attributes.Add("onchange", "alert('hello')");
     }
    

    这是我的简单代码,它正在工作。

    【讨论】:

    • @Aaron:我刚刚删除了我的答案,因为你是绝对正确的。不知道 onchange 事件会自动传播到子元素。
    • 如何为 CheckBoxList 中的项目设置它。 onchange 事件附加到标签元素而不是输入标签本身。
    • 同样的问题,它影响标签而不是输入元素。这就是它的呈现方式...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多