L'obtention de la valeur de la cellule de colonne masquée
J'ai un grand gridview:
<asp:GridView CssClass="hoursGrid" ID="hoursReportGridView" runat="server" AutoGenerateColumns="False" BackColor="#DEBA84" BorderColor="#DEBA84"
BorderStyle="None" BorderWidth="1px" CellPadding="3" CellSpacing="2" DataSourceID="SqlDataSource2" OnRowDataBound="hoursReportGridView_OnRowDataBound">
<Columns>
<asp:BoundField DataField="Person" HeaderText="Person" SortExpression="Project" />
<asp:BoundField DataField="Project" HeaderText="Project" SortExpression="Project" />
<asp:BoundField DataField="ProjectType" HeaderText="Project Type" ReadOnly="True" SortExpression="Sprint" ItemStyle-HorizontalAlign="Center" />
<asp:BoundField DataField="StoryNumber" HeaderText="Story Number" SortExpression="Story" ItemStyle-Width="6%" ItemStyle-HorizontalAlign="Center" />
<asp:BoundField DataField="StoryTitle" HeaderText="Story Title" SortExpression="Story" ItemStyle-Width="20%" />
<asp:BoundField DataField="Effort" HeaderText="Effort" SortExpression="Effort" ItemStyle-HorizontalAlign="Right" />
<asp:BoundField DataField="Task" HeaderText="Task" SortExpression="Task" ItemStyle-Width="20%" />
<asp:BoundField DataField="OriginalEstimateHours" HeaderText="Original Estimate" SortExpression="OriginalEstimateHours" ItemStyle-HorizontalAlign="Right" />
<asp:BoundField DataField="Monday" HeaderText="Monday" ReadOnly="True" SortExpression="Monday" ItemStyle-HorizontalAlign="Right" />
<asp:BoundField DataField="Tuesday" HeaderText="Tuesday" ReadOnly="True" SortExpression="Tuesday" ItemStyle-HorizontalAlign="Right" />
<asp:BoundField DataField="Wednesday" HeaderText="Wednesday" ReadOnly="True" SortExpression="Wednesday" ItemStyle-HorizontalAlign="Right" />
<asp:BoundField DataField="Thursday" HeaderText="Thursday" ReadOnly="True" SortExpression="Thursday" ItemStyle-HorizontalAlign="Right" />
<asp:BoundField DataField="Friday" HeaderText="Friday" ReadOnly="True" SortExpression="Friday" ItemStyle-HorizontalAlign="Right" />
<asp:BoundField DataField="Saturday" HeaderText="Saturday" ReadOnly="True" SortExpression="Saturday" ItemStyle-HorizontalAlign="Right" />
<asp:BoundField DataField="Sunday" HeaderText="Sunday" ReadOnly="True" SortExpression="Sunday" ItemStyle-HorizontalAlign="Right" />
<asp:TemplateField HeaderText="Total" ItemStyle-HorizontalAlign="Right">
<ItemTemplate>
<asp:LinkButton ID="taskLinkButton" Text='<%# Eval("Total") %>' Visible='<%# Eval("StoryTitle").ToString() != "" %>' runat="server" OnClick="taskLinkButton_Click" />
<asp:Literal ID="Literal1" Text='<%# Eval("Total") %>' Visible='<%# Eval("StoryTitle") == "" %>' runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="DifferentUsers" HeaderText="DifferentUsers" SortExpression="DifferentUsers" Visible="false"/>
</Columns>
</asp:GridView>
La dernière boundfield je ne veux pas montrer à l'utilisateur, c'est pourquoi sa visibilité est faux.
Cependant, je veux changer la couleur de la cellule si cette invisible de la cellule de la ligne est > 0:
protected void hoursReportGridView_OnRowDataBound(Object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
if ((e.Row.Cells[16].Text != " ") && (Int16.Parse(e.Row.Cells[16].Text) > 0))
{
for (int i = 0; i < 15; i++)
{
e.Row.Cells[i].ForeColor = Color.Black;
e.Row.Cells[i].BackColor = ColorTranslator.FromHtml("#fde16d");
}
}
}
}
Cette méthode fonctionne très bien avec la colonne est visible, mais il ne fonctionne pas quand je l'ai mis à false. Comment puis-je atteint la fonctionnalité sans montrer la colonne?
Vous pouvez utiliser un TemplateField avec un
HiddenField
à l'intérieur.
OriginalL'auteur David Tunnell | 2013-11-05
Vous devez vous connecter pour publier un commentaire.
Au lieu de se cacher que la cellule, utiliser un
TemplateField
qui contient un ASP.NETHiddenField
de contrôle, comme ceci:Maintenant dans votre code-behind, vous pouvez trouver le champ caché de contrôle, comme ceci:
OriginalL'auteur Karl Anderson
Essayer cette
référence
OriginalL'auteur Sid M
Vous pouvez essayer et voir si la définition de la visibilité à vrai avant de changer de couleur et de revenir à false, une fois que les travaux. L'utilisateur ne verra jamais la colonne, puisque la grille ne sera pas obtenir actualisé au cours de l'opération.
OriginalL'auteur ThunderGr
En fonction de comment vous liant à la
GridView
, la ligne deDataItem
peut être coulé à votre classe de données:Cette offre IntelliSense au temps de développement, et fortement typé de vérifier au moment de la compilation.
OriginalL'auteur Mark
Essayer cette Amis ,
J'ai pris une table la Direction, avec colonnes BranchID & Branchname pour masquer BranchID j'ai pris HiddenField à l'intérieur
TemplateField comme indiqué ci-dessous
En aspx.cs
OriginalL'auteur Supriya