Voici comment je navigue vers myPage.aspx
,
<a href='~/myPage.aspx?show=<%#Eval("id")%>' id="showEach" runat="server">Show Each</a>
<a href="~/myPage.aspx?show=all" id="showAll" runat="server">Show All</a>
Et j'ai une grille dans myPage.aspx
<asp:GridView ID="GridView1" runat="server">
<Columns>
<asp:BoundField HeaderText="ColumnOne" Visible="true"/>
<asp:BoundField HeaderText="ColumnTwo" Visible="true"/>
</Columns>
</asp:GridView>
Ce que je veux faire, c'est que si la chaîne de requête est égale à all
(~/myPage.aspx? Show = all), je veux que les Column2
De GridView1 soient visibles à true, sinon, définir visible sur faux.
Comment puis-je le faire ?
vous pouvez utiliser l'index de colonne gridview pour masquer la colonne particulière
Le code pourrait être
if(Request.QueryString.Get("show")=="all")
GridView1.Columns[1].Visible=true;
else
GridView1.Columns[1].Visible=false;
Plus de détails
Je pense que oui
<asp:BoundField HeaderText="ColumnTwo"
Visible='<% if (Request.QueryString.Get("all") == "all" ) "true" else "false" %>'/>
Vous devrez vérifier le syntex
Essaye ça
Visible='<% Request.QueryString.Get("all") == "all"? "true": "false"%>'
<% =%> sort directement dans le flux de réponse et le balisage asp ne fait pas partie du flux de réponse. C'est une erreur de supposer que les opérateurs <% =%> effectuent tout type de prétraitement sur le balisage asp.
Plus d'explication
Vous pouvez utiliser la méthode de pré-rendu gridview pour définir ceci ...
protected void GridView_PreRender(object sender, EventArgs e)
{
if(Reqest.QueryString["Id"]=="all"&& Reqest.QueryString["Id"]!=null)
{
GridViewId.Columns[1].Visible = true;
}
else
GridViewId.Columns[1].Visible = false;
}
Cher essayez d'utiliser RowDataBound événement de Grid View comme
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
//here apply your condition
if(Request.QueryString["name"] == "all")
e.Row.Cells[<index_of_cell>].Visible = true;
else
e.Row.Cells[<index_of_cell>].Visible = false;
}
}
Essayez quelque chose comme ça.
J'espère que ça marche pour toi.