Voici l'idée: l'utilisateur peut ajouter des éléments et ils peuplent dans un contrôle de liste. Si l'utilisateur n'a aucun élément, il ne devrait pas être en mesure de soumettre le formulaire. Cependant, ajouter un élément artificiel quand il n'y a pas d'articles en utilisant:Pourquoi le compte n'est pas précis?
if (ds.Tables[0].Rows.Count == 0)
{
lstItems.Items.Insert(0, "No items have been added.");
}
else
{
lstItems.DataSource = ds;
lstItems.DataTextField = "ItemInfo";
lstItems.DataValueField = "Item_ID";
lstItems.DataBind();
}
Plus tard, je veux assurer qu'il ya des éléments avant de soumettre, mais le DataSet (ds
) n'est pas disponible dans cette fonction/contexte. Pour résoudre ce problème, je déclarais une variable globale (public int) au sein de la classe qui pourrait être référencé:
public int numItems = 0;
Définissez ensuite comme si:
numItems = ds.Tables[0].Rows.Count;
De cette façon, il ne serait pas décontenancer par le seul enregistrement artificiel que j'ai inséré dans lstItems
. Cependant, cela ne fonctionne pas. La valeur reste 0, même si l'instruction conditionnelle ci-dessus évalue correctement indiquant que le nombre de lignes est et non 0. Que fais-je de mal? Existe-t-il une meilleure façon de le faire? Je considérais à l'aide:
if (lstItems.Items.Count < 1)
{
// allow submission
}
Mais le problème est qu'il frappe de mon article artificiel:
lstItems.Items.Insert(0, "No items have been added.");
Alors, quelle est la meilleure façon de vérifier s'il y a des éléments créés par l'utilisateur dans le liste?
à quel événement de page cela se produit-il? – ps2goat
@ ps2goat il se produit dans une méthode pour remplir les éléments, qui est appelée dans page_load après avoir vérifié que la page n'est pas une publication. – Dan