C# 无法使用更新面板从aspx页触发代码隐藏(aspx.cs)方法
我有一个显示城市名称的自动完成文本框。每当用户单击cityname时,选定的cityname将显示在文本框中。此文本框值应发送到代码隐藏方法(aspx.cs),以获取所选城市名称的更多详细信息,从而在gridview中显示结果详细信息 现在,为了传递所选值,我添加了一个文本框,用于复制所选的cityname值并将其包含在更新面板中。当文本框选择发生任何变化时,都会触发代码隐藏方法: 这是aspx页面中的代码:C# 无法使用更新面板从aspx页触发代码隐藏(aspx.cs)方法,c#,jquery,asp.net,textbox,updatepanel,C#,Jquery,Asp.net,Textbox,Updatepanel,我有一个显示城市名称的自动完成文本框。每当用户单击cityname时,选定的cityname将显示在文本框中。此文本框值应发送到代码隐藏方法(aspx.cs),以获取所选城市名称的更多详细信息,从而在gridview中显示结果详细信息 现在,为了传递所选值,我添加了一个文本框,用于复制所选的cityname值并将其包含在更新面板中。当文本框选择发生任何变化时,都会触发代码隐藏方法: 这是aspx页面中的代码: $(document).ready(function () {
$(document).ready(function () {
$('#txtName').on('change', function () {
$('#selectedItem').html(this.value);
}).change();
$('#txtName').on('autocompleteselect', function (e, ui) {
$('#selectedItem').val(ui.item.value);
});
});
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<label>Alternate Names: </label>
<asp:TextBox ID="txtName" runat="server"></asp:TextBox>
<asp:Label ID="countLabel" runat="server"></asp:Label>
<br />
<asp:UpdatePanel ID="updatePanel1" runat="server">
<ContentTemplate>
<asp:TextBox ID="selectedItem" runat="server" OnTextChanged="selectedItem_TextChanged"></asp:TextBox>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="selectedItem" EventName="TextChanged" />
</Triggers>
</asp:UpdatePanel>
</form>
但这种方法不会被触发。有人能帮我找出我犯的错误吗。首先,
MessageBox.Show
不是WEBforms代码,而是WINforms。你不应该把它们混在一起。如果要在网页上显示结果,请使用javascript警报或模式
下一项是:$('#selectedItem').html(this.value)代码>。它应该与val()一起使用
第三,如果您想触发对文本更改的回发,请使用AutoPostBack=true
<asp:TextBox ID="selectedItem" ClientIDMode="Static" runat="server"
OnTextChanged="selectedItem_TextChanged" AutoPostBack="true"></asp:TextBox>
然后是代码隐藏
protected void Button1_Click(object sender, EventArgs e)
{
showResults.Text = selectedItem.Text;
}
我无法放置按钮,当我单击自动完成文本框中的值时,它必须显示gridview。如果不使用按钮,我如何实现这一点?请帮忙。你可以用css隐藏按钮。您的问题是,当使用jQuery更改selectedItem
文本时,不会触发TextChanged事件,因此如果您不触发某些内容,将永远不会到达代码隐藏。
<asp:TextBox ID="selectedItem" ClientIDMode="Static" runat="server"
OnTextChanged="selectedItem_TextChanged" AutoPostBack="true"></asp:TextBox>
<asp:UpdatePanel ID="updatePanel1" runat="server">
<ContentTemplate>
<asp:TextBox ID="selectedItem" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
<asp:Label ID="showResults" runat="server" Text=""></asp:Label>
</ContentTemplate>
</asp:UpdatePanel>
<script type="text/javascript">
$(document).ready(function () {
$('#txtName').on('change', function () {
$('#selectedItem').val(this.value);
$('#Button1').click();
});
});
</script>
protected void Button1_Click(object sender, EventArgs e)
{
showResults.Text = selectedItem.Text;
}