我正在使用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();
}
}
我正在使用这样的代码,当post pack发生时,该代码强制页面保留选定的选项卡,并且运行良好。
<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);
});
});
发布于 2013-06-11 12:19:05
我假设您使用ASP.NET C#是因为您的标记和语法。我可以建议以下选项:使用剃须刀视图,或者使用您已经使用的JavaScript/jQuery。
如果您更喜欢使用Razor,请查看这个问题中的引用,并使用@
符号调用服务器函数。在这种情况下,@ChangeMode
是您要寻找的东西。
既然您已经在使用jQuery,我建议您使用.click()
编写一个JavaScript函数。由于JavaScript和jQuery都能够调用服务器,所以您将能够访问服务器端函数ChangeMode
。
$(‘#tabs 2’).click(函数(){//在这里调用服务器)。您可以使用Ajax,/或查看下面有关ASP.NET C# }的链接);
Ajax调用:
我发现jQuery .ajax()调用非常有用,我的.ajax()调用通常如下所示:
//从服务器获取信息,并在我的div中插入id="mydiv“$.ajax({ url:'/ControllerName/MethodName‘),类型:'POST',数据: ko.toJSON({myvariable}),dataType:"json",contentType:"application/json;charset=utf-8",成功: function (data) {$(’mydiv‘).html(’可视‘,’可见‘);},错误:函数(错误){警报(‘无法检索数据’;} });
另外,我不知道您决定使用什么,但是我喜欢这些选项卡的建议:试试html found 这里,它使用ul
/li
和a
自己制作选项卡。触发该操作的通常是a
。
https://stackoverflow.com/questions/17050093
复制