L'évolution des valeurs à l'intérieur de mon GridView en charge avec ASP.NET
J'ai un GridView qui se rempli avec des données provenant d'une base de données SQL, très facile.
Maintenant, je veux remplacer les valeurs dans ma colonne comme......
Si c04_oprogrs valeur est à 1, puis de les afficher Prendre dans le contrôle GridView.
Si c04_oprogrs valeur est de 2, puis de les afficher Disponible dans le contrôle GridView.
Les modifications de code dois-je faire pour changer mon code pour afficher les nouvelles valeurs.
Ma Grille
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
Height="281px" Width="940px"
Font-Size="X-Small" AllowPaging="True"
onpageindexchanging="GridView1_PageIndexChanging">
<Columns>
<asp:BoundField DataField="c04_oprogrs" HeaderText="Order Progress"
SortExpression="c04_oprogrs" />
<asp:BoundField DataField="c04_orderno" HeaderText="Order No."
SortExpression="c04_orderno" />
<asp:BoundField DataField="c04_orddate" HeaderText="Date of Order"
SortExpression="c04_orddate" DataFormatString="{0:d/MM/yyyy}" />
<asp:BoundField DataField="c04_ordval" HeaderText="Order Value"
SortExpression="c04_ordval" DataFormatString="{0:R#,###,###.00}" />
<asp:BoundField DataField="c04_delval" HeaderText="Delivered Value"
SortExpression="c04_delval" DataFormatString="{0:R#,###,###.00}" />
<asp:BoundField DataField="c04_invval" HeaderText="Invoice Value"
SortExpression="c04_invval" DataFormatString="{0:R#,###,###.00}" />
<asp:BoundField DataField="c04_orddesc" HeaderText="Order Description"
SortExpression="c04_orddesc" >
<ControlStyle Width="300px" />
</asp:BoundField>
</Columns>
</asp:GridView>
Mon chargement de la Page
SqlConnection myConnection;
DataSet dataSet = new DataSet();
SqlDataAdapter adapter;
//making my connection
myConnection = new SqlConnection(ConfigurationManager.ConnectionStrings["SAMRASConnectionString"].ConnectionString);
adapter = new SqlDataAdapter("Select TOP 40 c04_credno, c04_orderno, c04_orddate, c04_ordval, c04_delval, c04_invval, c04_oprogrs, c04_orddesc FROM C04ORDS WHERE c04_credno = '" + Session["CreditorNumber"] + "'AND c04_oprogrs <> 9 ORDER BY c04_orddate DESC", myConnection);
adapter.Fill(dataSet, "MyData");
GridView1.DataSource = dataSet;
Session["DataSource"] = dataSet;
GridView1.DataBind();
Etienne
EDIT:
MA SOLUTION FINALE
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
//Find the value in the c04_oprogrs column. You'll have to use
string value = e.Row.Cells[0].Text;
if (value == "1")
{
e.Row.Cells[0].Text = "Take";
}
else if (value == "2")
{
e.Row.Cells[0].Text = "Available";
}
}
}
OriginalL'auteur Etienne | 2009-04-16
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser le
RowDataBound
événement pour cette. À l'aide de cet événement, vous pouvez modifier le contenu des colonnes spécifiques avant que la grille ne soit rendue.De clarifier un peu. D'abord, vous ajoutez une colonne de modèle avec une étiquette à votre grille de point de vue (voir également la réponse par ranomore):
Ensuite, vous mettre en œuvre la
RowDataBound
cas (je n'ai pas vérifié le code ci-dessous, de sorte qu'il peut contenir quelques erreurs de syntaxe):Je vais faire un essai..
Merci à tous pour l'aide, j'ai apporté quelques modifications et cela a fonctionné!! COOL!!
tanx pour ur smart réponse 🙂
OriginalL'auteur Ronald Wildenberg
Vous pouvez utiliser une colonne de modèle et appeler une fonction dans votre code derrière.
puis dans votre code derrière ne
OriginalL'auteur Dave Neeley
Sans l'aide d'une fonction. Le ternaire déclaration est en VB. Si vous avez imbriquer un autre ternaire déclaration de vraiment tester pour 2 alors qu'il serait plus facile d'aller avec rwwilden de la solution.
OriginalL'auteur rvarcher
Vous pouvez ajouter un champ dans l'Instruction SQL
Et faire de ce nouveau champ de la partie de la BoundColumn dans le balisage.
Pardon pour mon syntaxe SQL, mais j'espère que vous obtenez l'idée.
EDIT: Ne pas utiliser la syntaxe
= '" + Session["CreditorNumber"] + "'
.Voir les attaques par injection sql et comment l'éviter à l'aide de SQL paramétrée.
OriginalL'auteur shahkalpesh
C'est le meilleur moyen efficace.
Faire une affaire en vue sql server, comme :-
OriginalL'auteur Faiz Kazi