我正在创建一个asp页面。在那个页面中,我定义了一个属性,如下面的
的.cs
private long _sequence;
public long Sequence { get { return _sequence; } set { _sequence = value; } }
现在我想在js文件中检索此属性值。实际上我可以在.aspx中检索它,但我希望它在.js文件中。
这是我的js函数和.aspx代码,我正在尝试,但它找不到属性值
的.aspx
<asp:Button ID="btnShowSimple" runat="server" Text="Notes Dialog" OnClientClick="NotesDialog(this)" />
的.js
function NotesDialog(ctr) {
var ControlName = document.getElementById(ctr.id);
$("#btnShowSimple").click(function (e) {
ShowDialog(false);
e.preventDefault();
LoadData("GetNotes", '"sequence":<%= this.Sequence %>');
});
}
我遗失的任何事情?如果有人对此有任何想法,请帮助我..我两天后面临这个问题..
答案 0 :(得分:2)
您的js
文件是服务器上的静态文件。您不能在其中使用这些<%= %>
标记。
您可以通过您在aspx
页面中设置并在js
文件中使用的全局javascript变量传递该属性。
即
的.aspx
<script type="text/javascript">
myProp = <%= this.Sequence %>;
</script>
的.js
function NotesDialog(ctr) {
var ControlName = document.getElementById(ctr.id);
$("#btnShowSimple").click(function (e) {
ShowDialog(false);
e.preventDefault();
LoadData("GetNotes", '"sequence":' + myProp);
});
}
答案 1 :(得分:1)
你不能在JS文件中这样做,因为它不是由asp.net运行时处理的。您可以做的最好的事情是在aspx
中声明一个变量并在js
中使用它,如:
<强> ASPX:强>
var _seq="<%= this.Sequence %>";
<强> JS:强>
LoadData("GetNotes", '"sequence":' + _seq); //USE ASPX VARIABLE
答案 2 :(得分:0)
您应该尝试将JavaScript代码与HTML分开。
相反,创建asp:Button
使用HTML按钮并设置可以检索的数据属性。
<button type="button" id="btnShowSimple" data-sequence="<%= this.Sequence %>">Notes Dialog</button>
在你的javascript文件中,将一个click事件绑定到你的按钮上,该按钮可以获取数据序列。
/** Put this in the bottom of you javascript file **/
(function (window) {
var document = window.document,
view;
view = {
/**
* Invoked in jQuery event context
* @param e
*/
bindClickEvent : function (e) {
$("#btnShowSimple").click(function (e) {
e.preventDefault();
var sequence = $(this).data('sequence');
ShowDialog(false);
LoadData("GetNotes", '"sequence":' + sequence);
});
}
}
$(document).ready(view.bindClickEvent);
} (window));
从您当前的代码中,当您单击asp:Button
时,您只需绑定一个新的单击事件,而不会执行它。
另外,从其他答案中,你不应该在JavaScript中声明任意全局变量