2013-01-08 62 views
4

我正在C#中創建一個應用程序。我創建了一個有5個鏈接的頁面。每個鏈接打開一個不同的頁面,其中有一個GridView單頁上的多個GridViews

我可以做一個網頁上的所有這些網格 - 即當我點擊link1,那麼只有對應於該鏈接的電網將出現在頁面上,當我點擊link2,那麼只有網格link2出現?只有激活鏈接的網格應該可見,而其他所有網格都是隱藏的。

有人可以幫助我如何或從哪裏開始?

+0

您使用的是什麼技術? WPF或WinForms? – Spontifixus

+0

如果這是使用winforms,我認爲你可以使用標籤,每個標籤有一個網格視圖,並有鏈接打開正確的標籤,一次視圖,一次一個網格,也許? – RhysW

+0

是的,它是可能的。你現在堅持住在哪裏?什麼技術? – nawfal

回答

3

由於您在您的標記中指定了網頁形式,多視圖控件會爲您帶來奇蹟。使用不同視圖爲每個gridview聲明多視圖控件。希望這有助於您。

使用

標記

<form id="form1" runat="server"> 


    <asp:LinkButton ID="LinkButton1" Text="Link1" runat="server" OnClick="LinkButton1_Click">LinkButton</asp:LinkButton> 
    <br> 
    <asp:LinkButton ID="LinkButton2" runat="server" Text="Link2" OnClick="LinkButton2_Click">LinkButton</asp:LinkButton></br> 

<asp:MultiView ID="MultiView1" runat="server" ActiveViewIndex="0"> 

    <asp:View ID="View1" runat="server" > 

     <asp:GridView ID="GridView1" runat="server"> 
     </asp:GridView> 

    </asp:View> 

     <asp:View ID="View2" runat="server"> 
     <asp:GridView ID="GridView2" runat="server"> 
    </asp:GridView> 
</asp:View> 
</asp:MultiView> 

</form> 

代碼隱藏

protected void LinkButton1_Click(object sender, EventArgs e) 
    { 
     //retrieve data 
     GridView1.DataBind(); 
     MultiView1.ActiveViewIndex=0; 
    } 


    protected void LinkButton2_Click(object sender, EventArgs e) 
    { 
     //retrieve data 
     GridView1.DataBind(); 
     MultiView1.ActiveViewIndex=1; 
    } 
0

我的解決方案是不是這樣優雅的方式來做到這一點作爲信守Masaraure指出。我建議你按照他的回答。

但是,您也可以將每個gridview放入不同的div內,並在這些div中設置「runat = server」屬性。

並且對於每個鏈接,你可以使用一個asp.net linkbutton(因爲這個元素有一個html鏈接的默認外觀)。

你的aspx代碼將呈三角這樣:

<asp:LinkButton runat="server" id="lnkButton_1" text="Link 1" OnClick="lnkButton_1_Click"/> 
<asp:LinkButton runat="server" id="lnkButton_2" text="Link 2" OnClick="lnkButton_2_Click"/> 
<asp:LinkButton runat="server" id="lnkButton_3" text="Link 3" OnClick="lnkButton_3_Click"/> 
<asp:LinkButton runat="server" id="lnkButton_4" text="Link 4" OnClick="lnkButton_4_Click"/> 
<asp:LinkButton runat="server" id="lnkButton_5" text="Link 5" OnClick="lnkButton_5_Click"/> 

<div runat="server" id="divGrid_1" Visible="false"> 
    <asp:GridView runat="server" id="grid_1"></asp:GridView> 
</div> 

<div runat="server" id="divGrid_2" Visible="false"> 
    <asp:GridView runat="server" id="grid_2"></asp:GridView> 
</div> 

<div runat="server" id="divGrid_3" Visible="false"> 
    <asp:GridView runat="server id="grid_3"></asp:GridView> 
</div> 

<div runat="server" id="divGrid_4" Visible="false"> 
    <asp:GridView runat="server" id="grid_4"></asp:GridView> 
</div> 

<div runat="server" id="divGrid_5" Visible="false"> 
    <asp:GridView runat="server" id="grid_5"></asp:GridView> 
</div> 

您aspx.cs(代碼隱藏)代碼LOOL這樣的:

protected void lnkButton_1_Click(object sender, EventArgs E) 
{ 
    divGrid_1.Visible = true; 
    divGrid_2.Visible = false; 
    divGrid_3.Visible = false; 
    divGrid_4.Visible = false; 
    divGrid_5.Visible = false; 

    LoadGridView_1(); 
} 

併爲每個鏈接按鈕事件單擊可以設置通訊員div的可見性爲true,其他人爲false,然後調用加載相應gridview的方法。

我希望我幫你。

此致敬禮。