从ASP.NET 1.1转换为ASP.Net 3.5后,单选按钮停止工作 - javascript

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

问题:

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

我们所做的调试:这是针对驻留在公司Intranet上的程序的。由于它是.Net 1.1,因此该程序主要针对Internet Explorer-JavaScript无法在其他浏览器上运行。 F12开发人员工具在Internet Explorer中打开JavaScript调试控制台。使用Visual Studio附加到IIS 7.5进程(w3wp.exe),可以查看C#服务器代码错误。

我们发现的内容:在RadioButtonList上将AutoPostBack设置为true,其中包含作为单选按钮的List项。结果,ASP.Net + C#在单选按钮的“ onclick”事件中动态生成doPostBack函数。但是:没有为默认选中的单选按钮生成onclick的doPostBack函数。我相信这是ASP.Net 3.5框架和RadioButtonList控件中的错误。

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

参考方案

[我在此初始帖子中以FYI的形式发布了我们的问题和解决方案。如果您有Microsoft或代表机构对此问题的正式声明,我会将其标记为答案。否则,此帖子将作为答案]。

解:

1)我们将RadioButtonList控件的AutoPostBack设置为false。
2)在页面的PreRender事件中,我们通过遍历RadioButtonList中的列表项,将新的doPostBack函数手动添加到单选按钮列表中的每个List项目。
3)代码如下:

for (int i = 0; i < rbList.Items.Count; i++)
{
    rbList.Items[i].Attributes.Add("onclick", "javascript:setTimeout('__doPostBack(\\'rbList$" + i + "\\',\\'\\')', 0)");
}

4)onclick事件函数调用中的代码与ASP.Net 3.5 + C#自动生成的结构相匹配。

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

从ASP.NET MVC中的AngularJS控制器加载数据而无需加载整个页面 - javascript

这是我的动作: [HttpPost, ValidateAntiForgeryToken] public ActionResult GetData() { //get data from DB and populate model with data return View("Data", model); } 该视图是: @model UI…

javascript popupwindow之后的行如何工作? - javascript

好的,我有一个来自后面代码的方法,可以创建一个popupwindow。然后有一行代码要在那之后执行,我想知道那行代码何时执行,是在使用popupwindow之后执行还是在创建popupwindow之后执行?例如:void exPopupWindowMethod() { string scr = "window.open('exampleP…

如何使用JavaScript访问嵌入式ASP.NET GlobalResources? - javascript

我正在开发一个遗留的ASP.NET项目,该项目正试图缓慢地进行调整,但是如果没有像巧克力手指屋一样塌陷的情况,我将无法进行重大更改。我试图为此找到解决方案,但由于术语的特定混合(“ javascript”,“ embedded”和/或“ resource”只是为我提供了有关如何嵌入.js文件的信息,而失败了)。 。),这可能是一种怪异的处理方式。该项目将Ap…

ddl在服务器中未更新-asp.net - javascript

我在ASP.NET c#上工作。我有一个DropDownList。 (runat =“ server”)在$ {document).ready上,我更新了它的值:$(document).ready(function () { document.getElementById("ddl").value = "abc"; ……

获取JavaScript值到C#字符串 - javascript

                        是否可以在C#中执行类似的操作?该值为“ 10/05/2014”string jsValue = javascript("$('#EstimatedStartDate').val()"); 参考方案 您能否更详细地阐明您要做什么。看来您正在尝试从javascript(客户…