从后面的代码访问javascript动态属性

时间:2013-02-14 08:29:16

标签: c# javascript webforms code-behind

我是ASP的新手,我被我的ascx控件困住了。我有一个带有以下初始化代码的控件Upload.ascx

 <%@ Control Language="C#" AutoEventWireup="true" CodeFile="Uploader.ascx.cs" Inherits="Uploader" %>
 <script type="text/javascript" > 
 $(function ()
 {
    var guid = GUID();//GUID() - js function which generates GUID
    $('#' + '<%= OuterId %>').attr('guid', guid);
 }
 </script>
 <div class="buttonNoHover" runat="server" id="current">Upload</div>  

和cs init代码(部分代码)

 protected void Page_Load(object sender, EventArgs e)
 {
    current.ID = this.ID;
 }

我的控制声明如下所示

 <my:Uploader ID="upload" OuterId="upload" ClientIDMode="Static" runat="server" /> 

在我的JS中,我可以访问属性$('#upload')。attr('guid')并且它给出了正确的值。但是当我提交表单时,我的upload.Attributes [“guid”]在代码隐藏中变为null。我怎样才能访问它以及我做错了什么?

1 个答案:

答案 0 :(得分:2)

你不能这样做:

有两种方法:

从服务器传递GUID并存储在某些文字中并使用JQuery等访问文字

OR

创建服务器端隐藏字段并分配值。

<asp:HiddenField runat="server" ID="hidden" />

$('[id$=hidden]').val(guid);

在提交时访问隐藏字段