我有一个名为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()但仍然是空的
答案 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 %>;