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
程序集引用到项目中。