2009-09-05 18 views
4

使用以下代码为CheckBoxList设置onchange事件不起作用。如何将Onchange事件附加到CheckBoxList?缺少InputAttributes?

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

如何为CheckBoxList设置onchange事件?

+0

您是否收到任何错误?呈现的HTML看起来像什么? – 2009-09-05 09:09:44

+0

Yeap,只要你给出它,我们无法找到准确的答案。 – Tarik 2009-09-05 09:13:28

+0

onchange事件附加到标签元素不要输入标签本身。 – Ahmed 2009-09-05 09:28:04

回答

6

使用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");  
      } 
     } 
    } 
+0

这是我设法为复选框列表捕获事件的唯一方法 – 2009-12-03 20:17:34

0

那么实际上它应该是工作。因为我在我的代码中写了一些东西,它工作。看来你需要检查你的JavaScript代码,只需用alert('hello')来改变它。

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

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

+0

它适用于CheckBox。 – Ahmed 2009-09-05 09:24:32

+0

@Aaron:我刚刚删除了我的答案,因为你是完全正确的。不知道onchange事件会自动传播给子元素。 – 2009-09-05 09:28:31

+0

如何为CheckBoxList中的项目设置它。 onchange事件附加到标签元素,不要输入标签本身。 – Ahmed 2009-09-05 09:32:01

1

使用此代码来处理点击复选框列表中的事件在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 
相关问题