2013-10-16 29 views
1

我在C#中使用ASP.net工作,我需要幫助來糾正或獲得我需要的方法。 我使用gridview,數據選擇一組數據,將根據其主鍵使用到另一個表中的一組數據。使用Javascript的GridView模板問題

在客戶端的運行時,我需要收集onclick事件,每行的sid列並將其放入隱藏字段中。然而,下面的代碼不適合我,因爲<%#eval(「sid」); %>!正被讀作一個字符串,而不是當前行的值。我需要的是複選框一旦點擊警報(5)而不是警報('<%#eval(「sid」);%>!');這就是目前正在做的事情。

<Columns> 
      <asp:TemplateField> 
       <ItemTemplate> 
        <asp:CheckBox runat="server" ID="cbSelect" onclick="javascript:alert('<%#eval("sid"); %>!');"/> 
       </ItemTemplate> 
      </asp:TemplateField> 
      <asp:HyperLinkField DataTextField="nombre" NavigateUrl="http://www.google.com" HeaderText="direccion"/> 
      <asp:BoundField DataField="sid" HeaderText="sid" InsertVisible="False" 
       ReadOnly="True" SortExpression="sid" /> 
      <asp:BoundField DataField="nombre_archivo" HeaderText="nombre_archivo" 
       SortExpression="nombre_archivo" /> 
</Columns> 

如果需要更多信息,請詢問您需要添加的問題。

回答

1

試試這個,爲我工作:

<asp:CheckBox runat="server" ID="cbSelect" onclick='<%# "javascript:alert(" + Eval("sid") + ");" %>'/> 
+0

我試過這種方法,解決了我的問題。謝謝 –

0

我相信Eval是區分大小寫的,而你不需要這個分號:

<%# Eval("sid") %> 
+0

我試過這個解決方案,但是,它輸出中<%#評估和演示%( 「SID」)>爲HTML實體,感謝的 –

0

試着改變你的代碼這一點。而你的Eval()實際上是eval(),這是無效的。

<Columns> 
<asp:TemplateField> 
    <ItemTemplate> 
    <asp:CheckBox runat="server" 
     ID="cbSelect" 
    onclientclick='<%#string.Format("javascript:alert('{0}');",Eval("sid"))%>'/> 
    </ItemTemplate> 
    </asp:TemplateField> 
<asp:HyperLinkField DataTextField="nombre" 
    NavigateUrl="http://www.google.com" HeaderText="direccion"/> 
    <asp:BoundField DataField="sid" HeaderText="sid" InsertVisible="False" 
       ReadOnly="True" SortExpression="sid" /> 
     <asp:BoundField DataField="nombre_archivo" HeaderText="nombre_archivo" 
       SortExpression="nombre_archivo" /> 
</Columns> 
+0

我試過這種方法與沒有成功,因爲它發送和錯誤,爲隨後的控制。謝謝。 –

+0

錯誤是什麼? –

+0

我沒有複製錯誤,但它說的是沒有屬性HyperLinkField DataTextField =「nombre」NavigateUrl =「http://www.google.com」HeaderText =「direccion」/> 。我認爲有些東西沒有被關閉,並將下一個領域看作是一個財產。 –