在DropDownList上调用JavaScript函数SelectedIndexChanged事件:

the*_*van 14 javascript asp.net visual-studio-2010 drop-down-menu

我写了一个JavaScript函数如下:

 function CalcTotalAmt() 
 {
    ----------
    -----------
 }
Run Code Online (Sandbox Code Playgroud)

我有一个DropDownList,

  <asp:DropDownList ID="ddl" runat="server"  AutoPostBack="true" OnSelectedIndexChanged="ddl_SelectedIndexChanged"></asp:DropDownList>
Run Code Online (Sandbox Code Playgroud)

我需要在DropDownList的SelectedIndexChanged事件中调用上面的JavaScript函数.我尝试过如下;

protected void ddl_SelectedIndexChanged(object sender, EventArgs e)
{
    ddl.Attributes.Add("onchange", "return CalcTotalAmt();");
}
Run Code Online (Sandbox Code Playgroud)

但是JavaScript函数没有执行.如何调用DropDownList中的JavaScript函数更改事件?

Imr*_*uch 17

或者你也可以这样做:

<asp:DropDownList ID="ddl" runat="server"  AutoPostBack="true" onchange="javascript:CalcTotalAmt();" OnSelectedIndexChanged="ddl_SelectedIndexChanged"></asp:DropDownList>
Run Code Online (Sandbox Code Playgroud)


Kap*_*wal 13

第一种方法:(测试)

.aspx.cs中的代码:

 protected void Page_Load(object sender, EventArgs e)
    {
        ddl.SelectedIndexChanged += new EventHandler(ddl_SelectedIndexChanged);
        if (!Page.IsPostBack)
        {
            ddl.Attributes.Add("onchange", "CalcTotalAmt();");
        }
    }

    protected void ddl_SelectedIndexChanged(object sender, EventArgs e)
    {
       //Your Code
    }
Run Code Online (Sandbox Code Playgroud)

JavaScript函数:从JS函数返回true

   function CalcTotalAmt() 
 {
//Your Code
 }
Run Code Online (Sandbox Code Playgroud)

.aspx代码:

<asp:DropDownList ID="ddl" runat="server"  AutoPostBack="true">
        <asp:ListItem Text="a" Value="a"></asp:ListItem>
         <asp:ListItem Text="b" Value="b"></asp:ListItem>
        </asp:DropDownList>
Run Code Online (Sandbox Code Playgroud)

第二种方法:(测试)

.aspx.cs中的代码:

protected void Page_Load(object sender, EventArgs e)
        {
            if (Request.Params["__EVENTARGUMENT"] != null && Request.Params["__EVENTARGUMENT"].Equals("ddlchange"))
                ddl_SelectedIndexChanged(sender, e);
            if (!Page.IsPostBack)
            {
                ddl.Attributes.Add("onchange", "CalcTotalAmt();");
            }
        }

        protected void ddl_SelectedIndexChanged(object sender, EventArgs e)
        {
            //Your Code
        }
Run Code Online (Sandbox Code Playgroud)

JavaScript函数:从JS函数返回true

function CalcTotalAmt() {
         //Your Code
     __doPostBack("ctl00$MainContent$ddl","ddlchange");
 }
Run Code Online (Sandbox Code Playgroud)

.aspx代码:

<asp:DropDownList ID="ddl" runat="server"  AutoPostBack="true">
        <asp:ListItem Text="a" Value="a"></asp:ListItem>
         <asp:ListItem Text="b" Value="b"></asp:ListItem>
        </asp:DropDownList>
Run Code Online (Sandbox Code Playgroud)