Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/414.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从ASP.NET 1.1转换到ASP.NET 3.5后,单选按钮停止工作_Javascript_C#_Asp.net - Fatal编程技术网

Javascript 从ASP.NET 1.1转换到ASP.NET 3.5后,单选按钮停止工作

Javascript 从ASP.NET 1.1转换到ASP.NET 3.5后,单选按钮停止工作,javascript,c#,asp.net,Javascript,C#,Asp.net,[我将在下面发布我们的问题和解决方案作为参考。如果您有Microsoft或其代表机构关于此问题的正式声明,我会将其标记为答案。否则,我在下面的帖子将作为答案]。 问题是: 我们采用了ASP.NET1.1程序,并将其转换为ASP.NET3.5。页面最初正确显示,默认情况下选择一个单选按钮和一个项目列表(“列表a”)。当我们单击另一个单选按钮时,它会正确显示列表B。当我们单击最初选择的单选按钮时,第一个列表列表A将不会重新显示。单选按钮是RadioButtonList控件的一部分 调试步骤:这是针对

[我将在下面发布我们的问题和解决方案作为参考。如果您有Microsoft或其代表机构关于此问题的正式声明,我会将其标记为答案。否则,我在下面的帖子将作为答案]。

问题是: 我们采用了ASP.NET1.1程序,并将其转换为ASP.NET3.5。页面最初正确显示,默认情况下选择一个单选按钮和一个项目列表(“列表a”)。当我们单击另一个单选按钮时,它会正确显示列表B。当我们单击最初选择的单选按钮时,第一个列表列表A将不会重新显示。单选按钮是RadioButtonList控件的一部分

调试步骤:这是针对驻留在公司内部网上的程序。由于它是.NET1.1,该程序主要针对Internet Explorer,JavaScript不在其他浏览器上运行。F12开发者工具在Internet Explorer中打开JavaScript调试控制台。通过VisualStudio附加到IIS7.5进程(w3wp.exe),我们可以查看C#服务器代码错误

我们发现:RadioButtonList上的AutoPostBack设置为true,其中包含作为单选按钮的列表项。因此,ASP.Net+C在单选按钮的“onclick”事件中动态生成doPostBack函数。但是:没有为默认选中的单选按钮生成onclick的doPostBack函数。我相信这是ASP.NET3.5框架和RadioButtonList控件中的一个bug


编辑:从问题中删除解决方案并作为答案发布,以避免问题关闭。谢谢@Jon P的提醒。

[我将在这篇文章中发布我们的问题和解决方案,作为参考。如果您有微软或其代表机构关于这个问题的官方声明,我会将其标记为答案。否则,这篇文章将作为答案]。

解决方案: 1) 我们将RadioButtonList控件的AutoPostBack设置为false。

2) 在页面的PreRender事件中,我们通过循环RadioButtonList中的列表项,手动将新的doPostBack函数添加到单选按钮列表中的每个列表项。

3) 代码如下:

for (int i = 0; i < rbList.Items.Count; i++)
{
    rbList.Items[i].Attributes.Add("onclick", "javascript:setTimeout('__doPostBack(\\'rbList$" + i + "\\',\\'\\')', 0)");
}
for(int i=0;i
4) onclick事件函数调用中的代码与ASP.NET3.5+C自动生成的结构匹配


修复后,两个单选按钮都具有onclick events功能,并且恢复了原始功能。

您的问题可能会按原样关闭。将其作为问题提出,删除解决方案部分,然后添加并接受该部分作为答案。也许你也会在回答中预先考虑一下。@JonP,谢谢你的提醒。我改变了这篇文章和另一篇文章的结构。这也是一个深奥的错误,我认为可以帮助读者。