如何在js文件中检索属性值?

时间:2012-06-27 06:48:09

标签: javascript asp.net jquery

我正在创建一个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 %>');
    });
}

我遗失的任何事情?如果有人对此有任何想法,请帮助我..我两天后面临这个问题..

3 个答案:

答案 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中声明任意全局变量