使用asp.net中的jquery选项卡的OnClick函数

时间:2013-06-11 17:22:30

标签: javascript jquery asp.net jquery-tabs

我正在使用jquery选项卡并尝试使用onclick函数,但它似乎没有触发。当用户单击选项卡并且我想将详细视图模式更改为只读模式时。这是我在aspx中的代码:

<div id="tabs-2" class="column" onclick="ChangeMode">

这里有代码:

 protected void ChangeMode()
        {
             if (DV_Test.CurrentMode == DetailsViewMode.Insert)
            {
                DV_Test.ChangeMode(DetailsViewMode.ReadOnly);
                LoadDet();
            }
        }

我正在使用此代码强制页面在发布邮件时保留选定的选项卡,并且工作正常。

<script type="text/javascript">
        var selected_tab = 1;
        $(function () {
            var tabs = $("#tabs").tabs({
                select: function (e, i) {
                    selected_tab = i.index;

                }
            });
            selected_tab = $("[id$=selected_tab]").val() != "" ? parseInt($("[id$=selected_tab]").val()) : 0;
            tabs.tabs('select', selected_tab);
            $("form").submit(function () {
                $("[id$=selected_tab]").val(selected_tab);

            });

        });

1 个答案:

答案 0 :(得分:0)

由于您的标记和语法,我假设您正在使用ASP.NET C#。我可以建议这些选项:使用Razor view,或使用您已经使用的JavaScript / jQuery。

如果您更喜欢使用Razor View,请查看this question中的引用,并使用@符号来调用服务器功能。在这种情况下,您需要@ChangeMode

由于您已经在使用jQuery,我建议您使用jQuery .click()编写JavaScript函数。由于JavaScript和jQuery都能够调用服务器,因此您将能够访问服务器端函数ChangeMode

$('#tabs-2').click(function(){
    //Make call to server here.  You can use [Ajax][4], 
    //or see the link below concerning ASP.NET C#
});

link,请参阅此fiddle


Ajax调用:

我发现jQuery .ajax()调用非常有用,这就是我的.ajax()调用通常的样子:

//get information from server and inject in my div with id="mydiv"
$.ajax({
    url: '/ControllerName/MethodName',
    type: 'POST',
    data: ko.toJSON({myvariable}),
    dataType: "json",
    contentType: "application/json; charset=utf-8",
    success: function (data) {
       $('#mydiv').html('visiblity', 'visible');
    },
    error: function (error) {
       alert('Cannot retrieve data');
    }
});

另外,我不确定你决定使用什么,但我喜欢这些标签的建议:尝试找到here的html,它使用ul / lia自己制作标签。触发操作的事情通常是a