C# OnSelectedIndexChange即使使用autopostback也不触发=true
好吧,我有点被难住了。我在页面上有一个asp:Dropdownlist。它通过以下web服务调用填充:C# OnSelectedIndexChange即使使用autopostback也不触发=true,c#,jquery,asp.net,postback,C#,Jquery,Asp.net,Postback,好吧,我有点被难住了。我在页面上有一个asp:Dropdownlist。它通过以下web服务调用填充: Ajax.GetSubDevelopments(developmentId, function (results) { var subDevelopments = $j("#<%=ddlMinorAssociation.ClientID %>"); subDevelopments.empty(); $j('<option />', { value
Ajax.GetSubDevelopments(developmentId, function (results) {
var subDevelopments = $j("#<%=ddlMinorAssociation.ClientID %>");
subDevelopments.empty();
$j('<option />', { value: "-1", text: "Select a sub association" }).appendTo(subDevelopments);
$j.each(results, function (index, value) {
$j('<option />', { value: value.SubDevelopmentID, text: value.Name }).appendTo(subDevelopments);
});
subDevelopments.show();
});
有人能提供一些关于发生了什么的见解吗?服务器端,您的下拉列表中没有任何项目。它无法触发OnSelectedIndexChanged事件,因为它的索引没有更改-它没有任何项可以为其提供有意义的当前索引值。服务器端,下拉列表中没有任何项。它无法触发OnSelectedIndexChanged事件,因为它的索引没有更改-它没有任何项可以为其提供有意义的当前索引值。我认为问题与加载页面时,下拉列表中没有元素,并且ViewState没有所选项的任何信息有关;因此,当它发回时,它确定没有要触发的任何Indexchange事件 它发回的事实只是因为Autoposback属性设置为true,这基本上触发了一个普通表单submit
如果希望这样做,请将AutoPostback属性更改为false,并将代码钩住onchange事件,然后向需要在服务器端执行的任何方法发出另一个Ajax请求,并在客户端绑定数据 我认为问题与加载页面时,下拉列表中没有任何元素,ViewState没有任何选定项目的信息有关;因此,当它发回时,它确定没有要触发的任何Indexchange事件 它发回的事实只是因为Autoposback属性设置为true,这基本上触发了一个普通表单submit
如果希望这样做,请将AutoPostback属性更改为false,并将代码钩住onchange事件,然后向需要在服务器端执行的任何方法发出另一个Ajax请求,并在客户端绑定数据 你是怎么确认它没有开火的?两种方式。1我的回答。写永远不会写在页面上。我在那个响应上运行了一个带有断点的调试会话。它从不命中。填充代码隐藏中的下拉列表,并选择一个值作为测试。我怀疑是ajax加载导致了这个问题。实际上,我正在从一个版本重构代码,该版本绑定在客户端请求的需要ajax的代码隐藏功能中。当它绑定在代码后面时,它会正确地触发。这就是我的观点。我现在无法确认,但如果我记得通过javascript正确修改下拉选择会导致服务器端事件中断。您是如何确认它没有触发的?有两种方式。1我的回答。写永远不会写在页面上。我在那个响应上运行了一个带有断点的调试会话。它从不命中。填充代码隐藏中的下拉列表,并选择一个值作为测试。我怀疑是ajax加载导致了这个问题。实际上,我正在从一个版本重构代码,该版本绑定在客户端请求的需要ajax的代码隐藏功能中。当它绑定在代码后面时,它会正确地触发。这就是我的观点。我现在无法确认,但是如果我记得通过javascript正确修改下拉选择会导致服务器端事件中断。是的,我认为你说得一针见血。不幸的是,我需要执行的代码是另一个数据绑定…一个更复杂的数据绑定。我打算用一个隐藏字段和uu doPostBack进行黑客攻击。@Icestorm0141我知道现在已经有点晚了。。但我也有类似的问题。我从下拉列表中找到了另一个数据绑定。任何显示您如何解决问题的相同代码都将大有帮助。我认为您一针见血。不幸的是,我需要执行的代码是另一个数据绑定…一个更复杂的数据绑定。我打算用一个隐藏字段和uu doPostBack进行黑客攻击。@Icestorm0141我知道现在已经有点晚了。。但我也有类似的问题。我从下拉列表中找到了另一个数据绑定。任何显示您如何解决问题的代码都将非常有用
<asp:DropDownList ID="ddlMinorAssociation"
OnSelectedIndexChanged="ddlMinorAssociation_SelectedIndexChanged"
AutoPostBack="true" runat="server" CssClass="hidden">
</asp:DropDownList>
protected void ddlMinorAssociation_SelectedIndexChanged(object sender, EventArgs e)
{
Response.Write("hi");
}