如何使用 OnChange 事件制作 HtmlSelect 控件以触发 C# 代码隐藏功能
How to make HtmlSelect Control with OnChange event to trigger C# code behind function
我应该如何 "Html Select Control" 使用 OnChange 事件来触发 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.Not 像这样 Select 服务器已更改
事件
,因为它必须制作另一个事件按钮。
2.Don不使用asp:DropDownList
3.Please 不要使用任何重定向方法,如 Ajax 或 JQuery 等...
如果我做对了,你需要使用另一个控件来触发后面的代码。只需添加按钮并访问 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;
}
使用 Ajax 从 JavaScript
调用 xx_ServerChange 函数
$.ajax({
type: 'POST',
url: 'PageName.aspx/functionName()',
data: '{ }',
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: function(msg) {
// Do something interesting here.
}
});
我认为您需要提交表格才能注册更改:
<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>
我找到了一个很好的方法来处理我的问题,将我的想法展示为以下代码
前端
<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: two references
https://msdn.microsoft.com/en-us/library/ms153112(v=vs.110).aspx
https://blog.csdn.net/lovegonghui/article/details/51942241
我应该如何 "Html Select Control" 使用 OnChange 事件来触发 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.Not 像这样 Select 服务器已更改
事件
,因为它必须制作另一个事件按钮。
2.Don不使用asp:DropDownList
3.Please 不要使用任何重定向方法,如 Ajax 或 JQuery 等...
如果我做对了,你需要使用另一个控件来触发后面的代码。只需添加按钮并访问 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;
}
使用 Ajax 从 JavaScript
调用 xx_ServerChange 函数$.ajax({
type: 'POST',
url: 'PageName.aspx/functionName()',
data: '{ }',
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: function(msg) {
// Do something interesting here.
}
});
我认为您需要提交表格才能注册更改:
<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>
我找到了一个很好的方法来处理我的问题,将我的想法展示为以下代码
前端
<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: two references
https://msdn.microsoft.com/en-us/library/ms153112(v=vs.110).aspx
https://blog.csdn.net/lovegonghui/article/details/51942241