将“onclick”属性添加到asp.net下拉列表项

时间:2009-05-04 18:40:41

标签: asp.net javascript

我可以为RadioButtonList项中的项添加属性,如下所示:

PaymentMethodDropDownList.Items[0].Attributes.Add("onclick", "javascript:showNoMethods();");
PaymentMethodDropDownList.Items[1].Attributes.Add("onclick", "javascript:showCreditCardMethod();");
PaymentMethodDropDownList.Items[2].Attributes.Add("onclick", "javascript:showSendPaymentMethod();");

但是,当我尝试将属性添加到DropDownList控件时,它似乎不起作用。我希望它是相似的。

2 个答案:

答案 0 :(得分:15)

这不能以与radioButtonList相同的方式完成,对于下拉列表,正确的属性事件名称是“onchange”而不是“onclick”。 该事件应附加到DropDownList本身,而不是如下项目:

PaymentMethodDropDownList.Attributes.Add("onchange",
                                            "showCreditCardMethod();");

此外,这有点复杂,并且需要自定义javascript函数来执行不同的操作,具体取决于所选的选项。这是一个例子:

PaymentMethodDropDownList.Attributes.Add("onchange",
                                             "handleDropDownEvents(this);");

自定义Javascript函数:这假定下拉项的值为“CreditCard”和“SendPayment”。

<script type="text/javascript">
    function handleDropDownEvents(e){
      if(e.value == "CreditCard"){
         showCreditCardMethod();
      }
      else if(e.value == "SendPayment"){
        showSendPaymentMethod();
      }
    }
</script>

答案 1 :(得分:1)

Actualy对于ASP .Net中的DropDownList,您正在寻找的属性是 OnSelectedIndexChanged OnTextChanged 。两者的工作完全相同。

希望这个帮助;)