我写了如下一段程序,想用DropDownList中的项来控制显示ListBox中的内容,但是现在DropDownList中的项改变时,ListBox中的内容不变,是怎么回事呢?是不是没有写 DropDownList的Index_Changed函数呢?请求指教,谢谢DropDownList NewsKindList;
ListBox NewsList;private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面// 绑定下拉列表框(新闻种类)
BindNewsKindData();
// 绑定列表框(新闻)
if(NewsKindList.Items.Count>0)
{
BindNewsData(Int32.Parse(NewsKindList.SelectedValue));
}
}
//绑定DropDownList NewsKindList
private void BindNewsKindData()
{
//清空DropDownList控件的老数据
NewsKindList.Items.Clear();
//从数据库获取NewsKinds表的数据
string sqlstring;
sqlstring="select * from NewsKinds ORDER BY KindOrder";
SqlCommand myCommand=new SqlCommand(sqlstring,myConnection);
myConnection.Open();
SqlDataReader myDataReader;
myDataReader=myCommand.ExecuteReader(CommandBehavior.CloseConnection);
//设定DropDownBox控件的数据源,并且设定Text和Value属性
NewsKindList.DataSource=myDataReader;
NewsKindList.DataTextField="KindName";
NewsKindList.DataValueField="NewsKindID";
NewsKindList.DataBind();
//关闭读取器和数据库的连接
myDataReader.Close();
}//绑定ListBox NewsList
private void BindNewsData(int nNewsKindID)
{
//清空News列表中的原始数据
NewsList.Items.Clear();
//从数据库中取到数据,并为News列表构造数据源
string sqlstring;
sqlstring="select * from news where NewsKindID='"+nNewsKindID.ToString()+"'";
SqlCommand myCommand=new SqlCommand(sqlstring,myConnection);
myConnection.Open();
SqlDataReader myDataReader;
myDataReader=myCommand.ExecuteReader(CommandBehavior.CloseConnection);
//绑定控件的数据
while(myDataReader.Read())
{
NewsList.Items.Add(new ListItem(FormatTitle(myDataReader["title"].ToString()),myDataReader["ID"].ToString()));
}
myDataReader.Close();
}
感觉好像是没有写DropDownList的Index_Changed函数,该怎么写呢?谢谢
public void Index_Changed(object sender, EventArgs e)
{
/////////
}
this.NewsKindList.SelectedIndexChanged+=new System.EventHandler(Index_Changed);
并且runat="Server"
行 22: runat="server" Height="32px" Width="200px"></asp:dropdownlist><asp:listbox id="NewsList" style="Z-INDEX: 109; LEFT: 248px; POSITION: absolute; TOP: 168px"
如果这样,那么请把此过程写在
if(!this.ispostback())
{}