1

我正在使用 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);

            });

        });
4

1 回答 1

0

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

如果您更喜欢使用 Razor 视图,请查看此问题中的参考资料并使用该@符号调用服务器函数。在这种情况下,这@ChangeMode就是您要查找的内容。

由于您已经在使用 jQuery,我建议您使用 jQuery 编写一个 JavaScript函数.click()。由于 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#
});

链接,看这个小提琴


阿贾克斯调用:

我发现 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');
    }
});

另外,我不确定你决定使用什么,但我喜欢这些关于标签的建议:试试这里找到的 html ,它使用ul/lia自己制作标签。触发动作的东西通常是a.

于 2013-06-11T20:19:05.193 回答