【发布时间】:2014-06-10 14:27:07
【问题描述】:
想法如下:用户可以添加项目并将它们填充到列表框控件中。如果用户没有项目,他们应该无法提交表单。但是,当没有使用的项目时,我添加了一个人造项目:
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();
}
稍后,我想在提交之前确保有项目,但 DataSet (ds) 在该函数/上下文中不可用。为了解决这个问题,我在类中声明了一个可以引用的全局变量(public int):
public int numItems = 0;
然后这样设置:
numItems = ds.Tables[0].Rows.Count;
这样它就不会被我在lstItems 中插入的一条人工记录丢弃。但是,这是行不通的。该值仍然为 0,即使上述条件语句的计算正确表明行数为 not 0。我做错了什么?有没有更好的方法来做到这一点?我考虑过使用:
if (lstItems.Items.Count < 1)
{
// allow submission
}
但问题在于它会撞到我的人造物品:
lstItems.Items.Insert(0, "No items have been added.");
那么检查列表中是否有任何用户创建的项目的最佳方法是什么?
【问题讨论】:
-
这发生在什么页面事件中?
-
@ps2goat 它发生在填充项目的方法中,在验证页面不是回发后在 page_load 内部调用。
标签: c# asp.net asp.net-4.0