I have a menu in my asp page composed from linkbuttons. I am using a div container and an unorder list. Every list item is a linkbutton. My problem is that when i click a linkbutton it is not doing postback.
My asp code:
<%@ Page Language="C#" MasterPageFile="~/Companies.master" AutoEventWireup="true" CodeBehind="Shareholder.aspx.cs" Inherits="GAD.Shareholder" Title="Untitled Page" %>
<%@ Register Src="~/Controls/ShareholderListControl.ascx" TagPrefix="gad" TagName="ShareholderListControl" %>
<%@ Register Src="~/Controls/ShareholderEditControl.ascx" TagPrefix="gad" TagName="ShareholderEditControl" %>
<%@ Register Src="~/Controls/CapitalSubscriptionListControl.ascx" TagPrefix="gad" TagName="CapitalSubscriptionListControl" %>
<%@ Register Src="~/Controls/CapitalSubscriptionEditControl.ascx" TagPrefix="gad" TagName="CapitalSubscriptionEditControl" %>
<%@ Register Src="~/Controls/ShareholderCollectListControl.ascx" TagPrefix="gad" TagName="ShareholderCollectListControl" %>
<%@ Register Src="~/Controls/ShareholderCollectEditControl.ascx" TagPrefix="gad" TagName="ShareholderCollectEditControl" %>
<%@ Register Src="~/Controls/ShareholderExpenditureListControl.ascx" TagPrefix="gad" TagName="ShareholderExpenditureListControl" %>
<%@ Register Src="~/Controls/ShareholderExpenditureEditControl.ascx" TagPrefix="gad" TagName="ShareholderExpenditureEditControl" %>
<%@ Register Src="~/Controls/ShareholderPayoutListControl.ascx" TagPrefix="gad" TagName="ShareholderPayoutListControl" %>
<%@ Register Src="~/Controls/ShareholderPayoutEditControl.ascx" TagPrefix="gad" TagName="ShareholderPayoutEditControl" %>
<%@ Register Src="~/Controls/DocumentListControl.ascx" TagPrefix="gad" TagName="DocumentListControl" %>
<%@ Register Src="~/Controls/DocumentEditControl.ascx" TagPrefix="gad" TagName="DocumentEditControl" %>
<%@ Register Src="~/Controls/AlertListControl.ascx" TagPrefix="gad" TagName="AlertListControl" %>
<%@ Register Src="~/Controls/AlertEditControl.ascx" TagPrefix="gad" TagName="AlertEditControl" %>
<%@ Register Src="~/Controls/LetterListControl.ascx" TagPrefix="gad" TagName="LetterListControl" %>
<%@ Register Src="~/Controls/ShareListControl.ascx" TagPrefix="gad" TagName="ShareListControl" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolderCompany" runat="server">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
<div id="exTab" class="container" runat="server">
<ul id="myTab" class="nav nav-pills" runat="server">
<li id="Li1" class="active" runat="server">
<asp:LinkButton ID="TabLink1" data-toggle="tab" CssClass="alink" runat="server" OnClick="ChangeView">ACTIONARI/ASOCIATI</asp:LinkButton>
</li>
<li id="Li2" runat="server">
<asp:LinkButton ID="TabLink2" data-toggle="tab" CssClass="alink" runat="server" OnClick="ChangeView">DOCUMENTE</asp:LinkButton>
</li>
<li><a href="#3b" data-toggle="tab">Applying clearfix</a>
</li>
<li><a href="#4a" data-toggle="tab">Background color</a>
</li>
</ul>
</div>
<asp:HiddenField ID="hdnTab" runat="server" Value="" />
<script type="text/javascript">
$(document).ready(function () {
if ($("#hdnTab").val() != '')
$('#myTab li').removeClass("active");
$('#myTab a[id="' + $("#hdnTab").val() + '"]').parent().addClass("active");
$(".alink").click(function () {
$("#hdnTab").val($(this).attr("id"))
__doPostBack($(this).attr("id"), "");
});
});
</script>
<div class="container" >
<asp:Panel ID="PanelMain" runat="server">
<asp:MultiView ID="MultiViewMain" runat="server" ActiveViewIndex="0">
<asp:View ID="ViewList" runat="server">
<gad:ShareholderListControl ID="List" Tag="Shareholder" runat="server"></gad:ShareholderListControl>
</asp:View>
<asp:View ID="ViewEdit" runat="server">
<gad:ShareholderEditControl ID="Edit" Tag="Shareholder" runat="server"></gad:ShareholderEditControl>
</asp:View>
<asp:View ID="ViewList_CapitalSubscription" runat="server">
<gad:CapitalSubscriptionListControl ID="CapitalSubscriptionListControl" Tag="CapitalSubscription" runat="server" />
</asp:View>
<asp:View ID="ViewEdit_CapitalSubscription" runat="server">
<gad:CapitalSubscriptionEditControl ID="CapitalSubscriptionEditControl" Tag="CapitalSubscription" runat="server" />
</asp:View>
<asp:View ID="ViewList_Document" runat="server">
<gad:DocumentListControl ID="DocumentListControl" Tag="Document" runat="server" />
</asp:View>
<asp:View ID="ViewEdit_Document" runat="server">
<gad:DocumentEditControl ID="DocumentEditControl" Tag="Document" runat="server" />
</asp:View>
</asp:MultiView>
</asp:Panel>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript" src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
</asp:Content>
Code behind:
public void ChangeView(object sender, EventArgs e) {
LinkButton lnkButton = sender as LinkButton;
switch (lnkButton.Text) {
case "ACTIONARI/ASOCIATI": MultiViewMain.SetActiveView(ViewList);
break;
case "DOCUMENTE": MultiViewMain.SetActiveView(ViewList_Document);
break;
default:
break;
}
}
In debug mode, i put breakpoint but my application is not going in my event function...
If you really want link buttons to post back you wont be able to get the actual feature of 'nav' functionality. It will definitely post back. In that scenario use the below code
Introduce a hidden field to capture which link you clicked
<asp:HiddenField ID="hdnTab" runat="server" Value="" />
Then use this script to post back to the server code
<script>
$(document).ready(function () {
if ($("#hdnTab").val() != '')
$('#myTab li').removeClass("active");
$('#myTab a[id="' + $("#hdnTab").val() + '"]').parent().addClass("active");
$(".alink").click(function () {
$("#hdnTab").val($(this).attr("id"))
__doPostBack($(this).attr("id"), "");
});
});
</script>
whole HTML
<%@ Register Src="~/Control/test.ascx" TagPrefix="uc1" TagName="test" %>
<%@ Register Src="~/Control/Tab2.ascx" TagPrefix="uc1" TagName="Tab2" %>
<div id="exTab" class="container" runat="server">
<ul id="myTab" class="nav nav-pills" runat="server">
<li id="Li1" class="active" runat="server">
<asp:LinkButton ID="TabLink1" data-toggle="tab" CssClass="alink" runat="server" OnClick="ChangeView">ACTIONARI/ASOCIATI</asp:LinkButton>
</li>
<li id="Li2" runat="server">
<asp:LinkButton ID="TabLink2" data-toggle="tab" CssClass="alink" runat="server" OnClick="ChangeView">DOCUMENTE</asp:LinkButton>
</li>
<li><a href="#3b" data-toggle="tab">Applying clearfix</a>
</li>
<li><a href="#4a" data-toggle="tab">Background color</a>
</li>
</ul> </div><asp:HiddenField ID="hdnTab" runat="server" Value="" /><div class="container" >
<asp:Panel ID="PanelMain" runat="server">
<asp:MultiView ID="MultiViewMain" runat="server" ActiveViewIndex="0">
<asp:View ID="ViewList" runat="server">
<uc1:test runat="server" id="test" />
</asp:View>
<asp:View ID="ViewEdit" runat="server">
View Edit
</asp:View>
<asp:View ID="ViewList_CapitalSubscription" runat="server">
ViewList_CapitalSubscription
</asp:View>
<asp:View ID="ViewEdit_CapitalSubscription" runat="server">
ViewEdit_CapitalSubscription
</asp:View>
<asp:View ID="ViewList_Document" runat="server">
ViewList_Document
</asp:View>
<asp:View ID="ViewEdit_Document" runat="server">
<uc1:Tab2 runat="server" id="Tab2" />
</asp:View>
</asp:MultiView>
</asp:Panel>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js" type="text/javascript"></script>