我是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。我怎样才能访问它以及我做错了什么?
答案 0 :(得分:2)
你不能这样做:
有两种方法:
从服务器传递GUID并存储在某些文字中并使用JQuery等访问文字
OR
创建服务器端隐藏字段并分配值。
<asp:HiddenField runat="server" ID="hidden" />
$('[id$=hidden]').val(guid);
在提交时访问隐藏字段