【问题标题】:Multiview controls多视图控件
【发布时间】:2016-02-03 16:18:00
【问题描述】:

我为使用 gridview 和 datalist 的多视图编写了以下代码:

<ContentPlaceHolderID="ContentPlaceHolder1">
    <div class="alert alert-success" >
      <div class="divbtn" style="text-align:right">
            <asp:LinkButton ID="gridbtn" runat="server" CssClass="glyphicon glyphicon-th" OnClick="gridbtn_Click"></asp:LinkButton>
            <asp:LinkButton ID="listbtn" runat="server" CssClass="glyphicon glyphicon-th-list" OnClick="listbtn_Click"></asp:LinkButton>
      </div>
    </div>

    <asp:MultiView runat="server" ID="multiview" ActiveViewIndex="0"> 
        <asp:View runat="server" ID="gridview">   
             <uc1:GridControl runat="server" ID="GridControl"/>
        </asp:View>

        <asp:View runat="server" ID="listview">
            <uc1:Listing runat="server" ID="Listing" />
        </asp:View>
    </asp:MultiView>

</asp:Content>

我正在使用两个链接按钮通过触发两个单独的事件来调用它们各自的视图,如下所示。

protected void listbtn_Click(object sender, EventArgs e)
    {
        multiview.ActiveViewIndex = 1;
    }

    protected void gridbtn_Click(object sender, EventArgs e)
    { 
        multiview.ActiveViewIndex = 0;
    }

假设,我的数据列表(索引=1)在我的页面上处于活动状态,如果有回发,它仍应显示数据列表,但在回发时它会自动切换回网格视图(索引=0)。我真的需要帮助!

【问题讨论】:

    标签: c# asp.net multiview


    【解决方案1】:

    您可以将索引保存到会话变量中,然后在回发时将其读回,如下所示:

    保存:

    Session["index"] = index.ToString();
    

    像这样在页面加载时阅读它:

    Index = Session["index"];
    

    您将需要 session 变量来维护每个用户会话的状态。如果要维护应用程序的状态,则必须使用应用程序变量。

    【讨论】:

    • 嘿!非常感谢。我使用了 session 变量,它起作用了。
    【解决方案2】:

    您好,在您的 page_load 事件中添加以下代码。

    if(!Page.IsPostBack)
    {
        multiview.ActiveViewIndex=0;
    }
    

    【讨论】:

    • 我之前也这样做过,但遇到了同样的问题。
    【解决方案3】:

    我认为您在每次回帖时都将多视图的活动索引设置为零,如下所示

    protected void Page_Load(object sender, EventArgs e)
        {
     multiview.ActiveViewIndex=0;
    }
    

    这将导致多视图在每次回帖时将活动索引设置为 0。为避免这种情况,您必须按如下方式设置它

    protected void Page_Load(object sender, EventArgs e)
            {
    if(!Page.IsPostBack)
    {
        multiview.ActiveViewIndex=0;
    }
    }
    

    【讨论】:

    • 您可以在此处复制页面加载事件中的代码吗?您是否在页面加载事件中调用了任何其他方法?仔细检查您是否在页面中调用的任何方法中将多视图的索引设置为零加载事件。
    • 其实问题出在回帖上。每次回帖时,都会加载默认值。所以我使用会话变量来保存索引,每次页面加载时我都会加载它并且它工作!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多