关于ListBox控件的SelectedIndex属性!
在一个页面中,我定义了一个ListBox控件, 并在页面载入时调用BindNewsData(int nNewsKindID)函数绑定数据,页面运行后,其ListBox控件中的数据也正确,可为什么当我选择其中的项后,其SelectedIndex属性值不会变?
<asp:ListBox id="NewsList" Runat="server" Width="450px" Height="250px" SelectionMode="Single"></asp:ListBox>
初始化 ListBox 中的数据的代码:
// 自定义函数,绑定新闻的数据
private void BindNewsData(int nNewsKindID)
{
NewsList.Items.Clear(); // 清空News列表框中的原始数据
SqlConnection myConnection = new SqlConnection(DataBaseDB.ConnectionString);
String cmdText = "SELECT * FROM News WHERE NewsKindID = '" + nNewsKindID.ToString() + "'";
SqlCommand myCommand = new SqlCommand(cmdText,myConnection);
myConnection.Open();
SqlDataReader sdrNews = myCommand.ExecuteReader(CommandBehavior.CloseConnection);
while(sdrNews.Read())
{
NewsList.Items.Add(new ListItem(FormatTitle(sdrNews["Title"].ToString()),sdrNews["NewsID"].ToString()));
}
sdrNews.Close(); // 关闭SqlDataReader对象和链接
}
其个按钮的单击事件。
private void editBtn_Click(object sender, System.Web.UI.ImageClickEventArgs e)
{
if(NewsList.SelectedIndex > -1)
{
Session["NewsKindListIndex"] = NewsKindList.SelectedIndex.ToString();
// 跳转到新闻修改页面,同时携带参数新闻ID
Response.Redirect("EditNews.aspx?NewsID=" + NewsList.SelectedItem.Value);
}
else
{
Response.Write("<script>alert(\"请选择要修改的项!\")</script>");
}
}
问题:我有选定ListBox中的项,但为何"NewsList.SelectedIndex"的值总是 -1 ,
问题点数:20、回复次数:3Top
1 楼net_lover(【孟子E章】)回复于 2006-05-03 12:33:46 得分 15
if(!IsPostBack)
{
BindNewsData(xx);
}Top
2 楼webwalker(Jason.Xu@BenQ.com)回复于 2006-05-03 12:35:57 得分 5
那说明,你数据项没绑定成功,默认是-1了Top
3 楼luchuanbo(哨兵)回复于 2006-05-03 12:39:45 得分 0
TO: 二楼的朋友。
if(!Page.IsPostBack)
{
BindNewsData(XX);
}
这段代码我有的,并且也能正确读出数据。
TO: 三楼的朋友。
我想数据绑定应没有问题,因为ListBox控件中有我要的数据项。而SelectedIndex应反映出当前选中项的索引号,Top




