2011-09-06 70 views
0

我有一個GridView在其單元格中有文本框。調用JavaScript函數調用文本框的內容。我想向函數傳遞文本框所屬的行的數據鍵,但不知道如何做到這一點。如何訪問數據密鑰?

下面給我一個錯誤信息:

<asp:TextBox ID="txtWFShipDate" runat="server" 
     Text='<%#Eval("StrShipDate") %>' BorderStyle="None" Width="80%" 
     CssClass="date" 
     onchange="JSSaveWorkflowChanges(this, '<%# Eval("BookStemCommon") %>');"> 
</asp:TextBox> 

BookStemCommon是數據鍵名。

+1

它絕不會傷害到發佈錯誤消息也是。 –

+1

什麼是錯誤信息? –

+0

錯誤是「服務器標記格式不正確。」 – dpreznik

回答

1

嘗試這樣的:

onchange='<%# string.Format("JSSaveWorkflowChanges(this, \"{0}\");", Eval("BookStemCommon")) %>' 

或使用JavaScriptSerializer正確編碼將被傳遞給JavaScript函數值更好,更安全的方式:

onchange='<%# string.Format("JSSaveWorkflowChanges(this, {0});", new JavaScriptSerializer().Serialize(Eval("BookStemCommon"))) %>' 
+0

謝謝你的回答。我得到一個錯誤,雖然:錯誤CS0246:無法找到類型或命名空間名稱'JavaScriptSerializer'(你是否缺少使用指令或程序集引用?) – dpreznik

+0

@dpreznik,它在'System.Web.Script .Serialization'命名空間。因此,無論是在它的前綴,還是在web.config中全局定義這個名稱空間。另外請確保您已將「System.Web.Extensions.dll」程序集引用到您的項目中。 –

+0

非常感謝。 – dpreznik

相關問題