我正在使用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);
});
});
答案 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# });
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
/ li
和a
自己制作标签。触发操作的事情通常是a
。