私の解決策は、Abide Masaraure が指摘したように、これを行うためのエレガントな方法ではありません。彼の答えに従うことをお勧めします。
ただし、各グリッドビューを異なる div 内に配置し、これらの div に属性"runat=server"を設定することもできます。
また、リンクごとに asp.net リンクボタンを使用できます (この要素のデフォルトの外観は 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 (分離コード) コードは次のようになります。
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 に設定してから、対応するグリッドビューをロードするメソッドを呼び出します。
私はあなたを助けたと思います。
よろしくお願いします。