使用Javascript获取usercontrol属性值

时间:2011-07-20 07:13:26

标签: javascript jquery asp.net user-controls

我有一个名为let的用户控件,其中包含一个名为InitialValue的属性。  一切都很好,我渲染控件并设置初始值。  在我的aspx页面中,我这样做:

<td>                
    <tagprefixName:ucName ID="Editor" runat="server"   InitialValue="bla bla"/>
</td>

我有一个会回发页面的按钮,但在回发之前,我正在做:

<asp:Button  ID="SaveButton" runat="server" Text="Save" OnClick="SaveRes" OnClientClick="SaveValue()" />.

在javascript函数中我想获取用户控件初始值的值: 我尝试了很多解决方案,但它们要么返回null,要么是未定义的。

function SaveValue() {
            var v= $("[id$=Editor]").attr("InitialValue");
            var v = $("#Editor").attr("InitialValue"); 
            var v= $("input[id$=Editor]").attr("InitialValue");
            var v= $("span[id$=Editor]").attr("InitialValue");//since the uc is rendered as span
}

如何获得我的uc的InitalValue? 非常感谢

修改 这是我的HTML:

<span id="ctl00_PlaceHolderMain_Editor"><input name="ctl00$PlaceHolderMain$2f1445d6-b13d-4f8f-9497-9c14e5d2b076" type="text" value="fgerf" id="ctl00_PlaceHolderMain_2f1445d6-b13d-4f8f-9497-9c14e5d2b076" /></span>

注意:我尝试使用.val()。value()但仍然是空的

4 个答案:

答案 0 :(得分:0)

我假设标记在服务器上被解析,并且生成的HTML代码没有此InitialValue属性。尝试查看源代码以查看实际代码是什么,然后将其粘贴到问题中。

如果所有控件都设置了跨度的内容,则以下内容应该有效:

$("span#Editor").text();

答案 1 :(得分:0)

修改更新为使用对象名称,因为您已在页面中包含实际的HTML。我唯一不确定的是ctl00_PlaceHolderMain_Editor每次都是一样的。如果每次都不一样,那么你需要找到一种方法(服务器端)来分配一个常量的id,这样你就可以在网页中引用该对象。

添加此代码会在首次加载页面时将初始值“保存”到编辑器对象的属性中。

$(document).ready(function(){
    var $editor = $("ctl00_PlaceHolderMain_Editor input");
    $editor.attr("data-initialValue", $editor.value());
});

然后,您可以稍后使用此代码回读初始值:

$("ctl00_PlaceHolderMain_Editor input").attr("data-initialValue");

如果由于任何原因,此代码无法正常工作,那么(在就绪处理程序中),您需要查明它是否无效,因为找不到$("ctl00_PlaceHolderMain_Editor input")或是否因为它不是'能够在对象上保存数据值。

答案 2 :(得分:0)

uc被渲染为span中的输入,具有uc的id,因此javascript代码将为:

$("span[id$=Editor] input[type=text]").val();

答案 3 :(得分:0)

你可以使用像这样的表达式在aspx标记页面中检索它

 var initialValue = <%= Editor.InitialValue %>;