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

Mik*_*ole 7 javascript asp.net

我可以向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();");
Run Code Online (Sandbox Code Playgroud)

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

Jos*_*lio 15

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

PaymentMethodDropDownList.Attributes.Add("onchange",
                                            "showCreditCardMethod();");
Run Code Online (Sandbox Code Playgroud)

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

PaymentMethodDropDownList.Attributes.Add("onchange",
                                             "handleDropDownEvents(this);");
Run Code Online (Sandbox Code Playgroud)

自定义Javascript函数:这假定下拉项的值是"CreditCard"和"SendPayment".

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

  • 您不需要"javascript:"伪协议.它仅在锚点的"href"属性上需要,并且在那里也强烈不鼓励. (2认同)