如何使用 getElementById 和 c# 变量设置动态 id
How to set dynamic id with getElementById with c# variable
我正在尝试将document.getElementById
与动态变量一起使用。
动态变量将根据从 URL 中的代码隐藏 (c#) 读入的查询字符串进行设置。
因此,例如,这将是它的理想工作方式:
C# 代码隐藏:
string myVar = Request.QueryString[0];
myVar = myVar + "Link";
JavaScript:
<script>
document.getElementById(myVar)
</script>
关于如何使其工作的任何想法?
你可以简单地将其插入.aspx页面的脚本块中(注意,避免使用"var"作为名称,因为这是Javascript中的保留字):
<script>
var id = '<%= HttpUtility.JavaScriptStringEncode(Request.QueryString[0]) + "something" %>';
document.getElementById(id);
</script>
您可以使用 RegisterStartupScript
从代码隐藏将其注入页面:
Page.ClientScript.RegisterStartupScript(this.GetType(), "QueryId",
string.Format("<script>var id='{0}';</script>",
HttpUtility.JavaScriptStringEncode(Request.QueryString[0]) + "something"
)
);
问题是你不能只使用 JS 与服务器端通信,JS 是客户端,所以你不会得到你在 ServerSide 中创建的变量。
要获取它们,您需要:
<%= write_the_thing_here %>
对于代码,您将编写:
string someThing = "<%= HttpUtility.HtmlEncode(Request.QueryString[0]) %>";
// now use this someThing in the document..you can use var instead of string
// but not them both..
document.getElementById(someThing);
// note the semicolon on the end, to close it..
你不应该使用string var
因为它们是JavaScript和 ASP.NET 中的数据类型,所以代码可能会感到困惑,认为这到底是什么。
相反,您还可以尝试将隐藏的输入字段编写为
<input type="hidden" name="someThing" value="@Request.QueryString[0]" />
然后使用它来动态地做你想做的事情。如果您确实想使用来自服务器的 ID,这可能是执行此操作的简单方法。
对不起jQuery好友:
var someThinge = $('input[type="hidden"]').val();
然后,继续你的工作!
Alexei Levenkov的帮助说明:JavaScript中的分号是可选的。它们的主要用途是区分由混淆器/最小化器(工具或人员)或普通开发人员编写的代码是否:)
相关文章:
- 在有角度的ui网格中设置动态列的问题
- 使用getElementById设置动态ID的输入字段的样式
- 动态设置动态创建的元素的宽度
- 在 angularjs 的 ga 命令中设置动态参数
- 如何在高图表中设置动态数据
- 想要在flowFactoryProvider配置中设置动态文件夹名称,将其传递到upload.php文件,以将上传的文件
- 如何为 angular js 设置动态网址
- 使用 KNOCKOUTJS 设置动态可观察量
- 如何使用 Javascript 精确设置动态样式转换
- 用 JS 更改.css?使用变量设置动态.css属性
- 如何使用 getElementById 和 c# 变量设置动态 id
- 在 jquery 中设置动态回退,每个都包含 JSON 数据
- 使用具有金钱掩码的字段设置动态最大值
- 设置“动态输入”字段的角度方式
- 如何为XHR POST参数设置动态URL
- 如何使用forEach在JavaScript和jQuery中设置动态变量
- 在EpicEditor上设置动态值
- 如何在聚合物中设置动态元标记和开放图标记
- 按序列名称设置动态图的初始列可见性
- 我可以/应该根据下拉菜单栏的项目数量为其设置动态高度