【发布时间】:2023-03-05 20:52:01
【问题描述】:
我对以下代码块有疑问:
Dim scriptHere As System.Web.UI.HtmlControls.HtmlGenericControl = control.Page.FindControl("scriptHere")
Dim controlID As String = ""
Dim disabled As String = IIf(isDisabled, "true", "false")
If TypeOf (control) Is ASPxEditBase Then
controlID = control.ID
End If
Try
control.ReadOnly = isDisabled
Dim script As String = ""
script &= "<script type=""text/javascript"">" & vbCrLf
script &= "// <![CDATA[" & vbCrLf
script &= "try {" & vbCrLf
script &= "$('#<%= " + controlID + ".ClientID %>').attr('disabled', " + disabled + ");" & vbCrLf
If selectedIndex <> -1 Then
control.SelectedIndex = selectedIndex
script &= "" + controlID + ".SetValue(" + selectedIndex.ToString() + ");" & vbCrLf
End If
script &= "} catch (e) { " & IIf(showErrors, "alert(e.message);", ";") & " }" & vbCrLf
script &= "// ]]> " & vbCrLf
script &= "</script>" & vbCrLf
scriptHere.InnerHtml &= script
Catch ex As Exception
Console.Out.WriteLine(ex.ToString())
End Try
问题是,它给我抛出了一个异常。 更准确地说,它只是说“未定义”,没有别的。 我认为问题出在这一行:
script &= "$('#<%= " + controlID + ".ClientID %>').attr('disabled', " + disabled + ");" & vbCrLf
此外,由于这是一个 jQuery 命令,我可以假设异常是由“$”引起的。
额外信息:
- 我已链接所需的 jQuery 库。
- 我已尝试添加
jQuery(document).ready(function () {/.../}); - 我已尝试使用 ScriptManager 执行相同的脚本。
- 我已经尝试在 page_load 上调用这个 sub 而不是之前的 页面渲染阶段
- 我还尝试在此脚本中链接 jQuery 库 阻止。
暂时就这些了。 提前致谢。
【问题讨论】:
-
你能看到被渲染到页面上的 javascript(通过查看页面源代码)吗?是按预期写的吗?
-
是的,这里是
<script type="text/javascript"> // <![CDATA[ jQuery(document).ready(function(){ try { $('#<%= cbRelation.ClientID %>').attr('disabled', true); cbRelation.SetValue(1); } catch (e) { alert(e.message); } }); // ]]> </script>
标签: jquery asp.net devexpress vb.net-2010