如何在单击按钮事件中将参数传递给来自我的网页的BasePage的javaScript函数?

时间:2013-08-06 17:55:07

标签: c# javascript asp.net

我有这个按钮点击事件:

$('#btnDelete').on('click', function(userId)
{
    var treeView = $("#treeview").data("kendoTreeView");

    $('#treeview').find('input:checkbox:checked').each(function()
    {
        var li = $(this).closest(".k-item")[0];
        var notificationId = treeView.dataSource.getByUid(li.getAttribute('data-uid')).ID;
        $.ajax(
            {
                url: '../api/notifications/deleteNotification?userId=' + userId + '&notificationId=' + notificationId,
                type: 'DELETE',
                success: alert('Delete successful.'),
                failure: alert('Delete failed.')
            });
    });
});

" userId"来自基页:

public class BasePage : System.Web.UI.Page, IRequiresSessionState
{
    public int UserId
    {
        get
        {
            return T2Identity.UserId;
        }
    }
} 

我如何在按钮的点击事件" btnDelete,"将userId变量传递给我的JavaScript函数?

3 个答案:

答案 0 :(得分:1)

我能想到的一种方法是将UserId属性作为cookie传递给首次发送页面时返回的HtmlResponse。

另一种方法是将其传递到页面加载的Asp.NET标记内。只需将其添加到页面的“正文”中:

<input type="hidden" id="user_id" name="user_id" value="<%= base.UserId.ToString() %>" />

答案 1 :(得分:0)

可以传递给函数的唯一对象是事件(在您的情况下是单击)和触发事件的元素(在您的情况下是按钮)。

其他所有内容必须作为全局变量传递,或附加到上述对象。例如,您可以将userId设置为按钮的属性。

答案 2 :(得分:0)

您始终可以创建隐藏字段并将其传递到您的页面,然后读取值。

或者如果您想从网络方法中调用它

   [WebMethod]
    public string GetUserId()
    {
          return UserId.ToString();
    }

和javascript      

    <script type="text/javascript">
        function HandleIT() {
            PageMethods.GetUserId(); 
            function onSucess(result) {
                alert(result);
            }
            function onError(result) {
                alert('Something wrong.');
            }
        }
    </script>