相关疑难解决方法(0)

在JavaScript中引用ID控件的ASP.NET控件?

当ASP.NET控件呈现时,它们的ID有时会发生变化,就像它们位于命名容器中一样.Button1例如,实际上可能具有ctl00_ContentMain_Button1呈现时的id .

我知道您可以在.cs文件中将JavaScript编写为字符串,获取控件的clientID并使用clientscript将脚本注入到页面中,但有没有一种方法可以使用ASP.NET Ajax直接从JavaScript引用控件?

我发现编写一个函数以递归方式解析dom并找到一个控件来保存我想要的id是不可靠的,所以我一直在寻找最佳实践而不是解决方法.

javascript asp.net ajax

46
推荐指数
4
解决办法
10万
查看次数

以Javascript PROPER方式设置asp:label的Text属性

我在表单上有一系列文本框.当用户在这些文本框中插入数字时,会进行计算并<asp:Label>通过JavaScript更新控件以反映这些计算:

document.getElementById('<%=TotalLoans.ClientID %>').innerHTML = TotalLoans;
Run Code Online (Sandbox Code Playgroud)

这正确地更新了UI.但是,当我尝试访问代码隐藏中的值时,该Text属性为空.这是有道理的,因为我innerHTML通过JavaScript 更新了属性.

//TotalLoans.Text will always be equal to "" in this scenario
double bTotalLoans = string.IsNullOrEmpty(TotalLoans.Text) 
                   ? 0.00 
                   : Convert.ToDouble(TotalLoans.Text);
Run Code Online (Sandbox Code Playgroud)

如何更新Text的特性<asp:Label>以这样的方式,我可以阅读代码隐藏属性通过JavaScript?

更新

这是一个包含41个标签的大型表单上的一个小问题,每个标签显示用户的某些计算结果.根据FishBasketGordo的建议,我将我<asp:Label>转变为残疾人<asp:TextBox>.我正在设置新文本框的值:

    document.getElementById('<%=TotalLoans.ClientID %>').value = TotalLoans;
Run Code Online (Sandbox Code Playgroud)

同样,在代码隐藏中,值TotalLoans.Text始终等于"".


我不介意改变我的方法,但这是问题的症结所在.

我正在使用JavaScript来操纵某些控件的属性值.当点击"提交"时,我需要能够从后面的代码中访问这些被操纵的值.

我有什么建议可以解决这个问题吗?

更新2

关于@James Johnson的回答,我无法.innerText按建议使用属性检索值.我已经EnableViewState设定为真的<asp:Label>.还有其他我想念的东西吗?

我不明白为什么,当我输入文本框并提交表单时,我可以访问代码隐藏中的值,但是当我以编程方式通过JavaScript更改文本框或标签的文本时,我无法访问新值.

javascript asp.net label code-behind

20
推荐指数
2
解决办法
11万
查看次数

标签 统计

asp.net ×2

javascript ×2

ajax ×1

code-behind ×1

label ×1