0

グリッドビューがあり、グリッドビュー内にラベルがあり、ユーザーがそのラベルをクリックすると、javascript関数が呼び出されます。そのラベルからjavascript関数にいくつかの値を渡します。値にapsotrpheが含まれている場合。エラーを生成し、javascript関数を呼び出しません。以下は私のコードです。

<asp:TemplateField> 
    <ItemTemplate> 
        <label style="text-decoration: underline" onclick="javascript:GetSelectedRow('<%# Eval("ID") %>','<%# Eval("systempath") %>','','',1);"><%#Eval("ID") %></label> 
    </ItemTemplate> 
</asp:TemplateField>

そしてjavascript関数は

function GetSelectedRow(id, systempath, x, x, rowIndex) { 

    debugger; 
    var label = document.getElementById('<%=lbl_ID.ClientID %>'); 

    label.innerText = mclid + "|" + systempath; 
    document.getElementById('<%=hdnlblID.ClientID %>').value = id + "|" + systempath; 

    return false; 

}
4

2 に答える 2

1

これを試して

<label style="text-decoration: underline" onclick="javascript:GetSelectedRow('<%# Eval("ID") %>','<%# Eval("systempath").ToString().Replace("'", @"\'"); %>','','',1);"><%#Eval("ID") %></label>
于 2012-11-26T22:52:00.243 に答える
0

IDを一重引用符で囲むため、エスケープしてアポストロフィを付ける必要があります。

var label = document.getElementById('<%=lbl_ID.ClientID.Replace("'", "\'") %>'); 
于 2012-11-26T22:52:57.083 に答える