ASP.NET中的自定义控件名称(不是ID)与JQ.serialize一起使用

时间:2014-05-13 21:58:39

标签: asp.net ajax namevaluecollection

我正在开发一个主要使用AJAX保存和检索数据的网站,以避免回发(或至少完全回发)。 我在codebehind中“准备”页面,在客户端我使用JQ和Javascript。 当我想保存数据时,我将元素序列化(使用JQ),然后使用AJAX post将数据发送到WebMethod。 这很好但我必须处理长名称元素(“ctl00 $ MainContent $ grdEmployees $ ctl03 $ ddlRole”)。 有时很难从NameValueColletion中检索数据,因为可以从不同的页面调用相同的WebMethod,因此元素的“名称”与控件可能嵌套在其他容器中的名称不同。

有没有办法为ASP.NET控件设置自定义名称以避免此问题? 或者其他方式来实现这种行为?

最好的问候。

1 个答案:

答案 0 :(得分:0)

您是否尝试使用ClientIDMode ="静态"这可以在.NET 4.5中找到。

当页面呈现时,ID会随着您的注意而发生变化。但是,您将ClientIDMode设置为static,它将使用您为控件本身添加的ID进行呈现。这样您就可以使用控件的ID而不是生成的ID。如果您想了解更多信息,请参阅关于ClientIDMode的MSDNA

http://msdn.microsoft.com/en-us/library/system.web.ui.control.clientidmode(v=vs.110).aspx