Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何访问数据密钥?_C#_Asp.net - Fatal编程技术网

C# 如何访问数据密钥?

C# 如何访问数据密钥?,c#,asp.net,C#,Asp.net,我有一个GridView,单元格中有文本框。在更改textbox的内容时调用JavaScript函数。我想将文本框所属行的数据键传递给函数,但不知道如何实现 下面给出了一条错误消息: <asp:TextBox ID="txtWFShipDate" runat="server" Text='<%#Eval("StrShipDate") %>' BorderStyle="None" Width="80%" CssClass="date"

我有一个
GridView
,单元格中有文本框。在更改textbox的内容时调用JavaScript函数。我想将文本框所属行的数据键传递给函数,但不知道如何实现

下面给出了一条错误消息:

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

BookStemCommon
是数据键名称。

请尝试以下操作:

onchange='<%# string.Format("JSSaveWorkflowChanges(this, \"{0}\");", Eval("BookStemCommon")) %>'
onchange=''
或者使用一种更好、更安全的方法来正确编码将传递给javascript函数的值:

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

错误是“服务器标签格式不正确”。谢谢您的回答。但我收到一个错误:错误CS0246:找不到类型或命名空间名称“JavaScriptSerializer”(是否缺少using指令或程序集引用?)@dpreznik,它在
System.Web.Script.Serialization
命名空间中定义。因此,要么在其前面加上前缀,要么在web.config中全局定义此命名空间。另外,请确保已将
System.Web.Extensions.dll
程序集引用到项目中。