次のコード ブロックに問題があります。
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 でこのサブルーチンを呼び出してみました
- また、このスクリプト ブロック内で jQuery ライブラリをリンクしようとしました。
それは今のところすべてです。前もって感謝します。