如何使带有OnChange事件的HtmlSelect控件触发函数后面的C#代码

时间:2018-07-18 06:57:23

标签: c# html asp.net html-select code-behind

如何通过OnChange事件使“ HTML选择控件”触发函数后面的C#代码
像DropDownList控件的

的ASP.NET SelectedIndexChanged

例如
前端

<select runat="server" id="xx" onserverchange="xx_ServerChange">
 <option>A</option>
 <option>B</option>
 <option>C</option>
</select>

后端

protected void xx_ServerChange(object sender, EventArgs e)
{

}

PS:
1.不喜欢这个Select server changed event ,因为它必须创建另一个事件按钮。
2.不要使用asp:DropDownList
3.请不要使用任何重定向方法,例如Ajax或JQuery等...

4 个答案:

答案 0 :(得分:1)

我找到了一种解决问题的好方法,将我的想法显示为以下代码

前端

  <select id="StartDate"  onserverchange="StartDate_ServerChange" runat="server">
  </select>

后端

protected void Page_Load(object sender, EventArgs e)
{     
   ClientScriptManager cs = Page.ClientScript;
   this.StartDate.Attributes.Add("onchange", cs.GetPostBackEventReference(this.StartDate, this.StartDate.ID));
}
protected void StartDate_ServerChange(object sender, EventArgs e)
{

}
  

PS:两个参考资料
  https://msdn.microsoft.com/en-us/library/ms153112(v=vs.110).aspx
  https://blog.csdn.net/lovegonghui/article/details/51942241

答案 1 :(得分:0)

如果我做对了,则需要使用另一个控件来触发后面的代码。只需添加按钮并访问 select

的状态
    <select runat="server" id="xx">
        <option>A</option>
        <option>B</option>
        <option>C</option>
    </select>
    <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />

后面的代码:

    protected void Button1_Click(object sender, EventArgs e)
    {
        int index = xx.SelectedIndex;
    }

答案 2 :(得分:0)

在JavaScript的xx_ServerChange函数中使用Ajax调用

$.ajax({
    type: 'POST',
    url: 'PageName.aspx/functionName()',
    data: '{ }',
    contentType: 'application/json; charset=utf-8',
    dataType: 'json',
    success: function(msg) {
        // Do something interesting here.
    }
});

答案 3 :(得分:0)

我认为您需要提交表单以进行更改注册:

<form id="myForm">
    <select runat="server" id="xx" onchange="myForm.submit()" onserverchange="xx_ServerChange">
     <option>A</option>
     <option>B</option>
     <option>C</option>
    </select>
</form>