注册 登录
编程论坛 ASP.NET技术论坛

listbox控件

huoqilin 发布于 2007-11-01 17:19, 1234 次点击
<asp:ListBox ID="fenlei" runat="server" Rows="1" DataSourceID="SqlDataSource1" DataTextField="fenlei" DataValueField="fenlei">
<asp:ListItem>最新公告</asp:ListItem>
<asp:ListItem>系统更新</asp:ListItem>
</asp:ListBox><asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:loveconn %>"
SelectCommand="SELECT * FROM [news] WHERE ([ID] = @ID)">
<SelectParameters>
<asp:QueryStringParameter Name="ID" QueryStringField="id" Type="Int32" />
</SelectParameters>
</asp:SqlDataSource>

在listbox控件里面,我加了数据绑定
绑定之后,自己定义的
<asp:ListItem>最新公告</asp:ListItem>
<asp:ListItem>系统更新</asp:ListItem>
这两个不显示了
请问下是怎么回事?
13 回复
#2
垃圾的沉默2007-11-02 01:34

你应该学着用手写代码来做..开始学麻烦点没关系..你这样做最多也就学会用VS了.但是C#或者是VB的语法和用法你都不会了

#3
guoxhvip2007-11-02 01:57
2楼说得很对 而且绑定个ListBox也用不了多少代码
#4
huoqilin2007-11-02 10:38
用绑定 gridview 的方法绑定 listbox 好像不行
其他还有什么方法?
这几天已经买了300元的书了,没有一个书里面讲这点的。
高手们能教下我吗?

先在遇到的问题是:
比如修改新闻,新闻分类是数据库独立的一个表
点击修改新闻,新闻分类用listbox控件,
第一个显示的是从新闻数据库读取出来的,这个新闻所使用的分类。
后面跟着的是从新闻分类表里读取出来的所有分类。

因为自己理解不动,做不出来,所以也没法发代码,让你们帮我找错。

请大家教教我,这个功能应该怎么做。
我现在就是学习阶段,请大家不要给我一句,看书去。
书我也看了,这个问题还是解决不了。
来这里也是为了学习,和书上有个互补。
书上是讲的大面积的,但是在实际应用中有很多书上是没有的。
请大家教教我,如果看书什么都学会了,也就不来这里了。

现在发帖都胆怯,不敢发了,不敢问问题了..........

谢谢
再谢谢。
#5
垃圾的沉默2007-11-02 11:18

你在用这个控件之前..你了解过这个控件的所有属性了吗??
最少最基本的应该了解了吧?
书上没有..但是VS帮助那里绝对是有的..并不是想说你什么的..像你在上面写的代码..那是解释脚本asp的写法..既然你学了.net写程序就要按.net的格式来写.

#6
冰彩虹2007-11-03 00:51
重新绑定listbox,如果不想擦除已有的记录,可以把要绑定的数据逐个逐个的Insert进去
like:

listbox.Items.Insert(...);
#7
guoxhvip2007-11-03 01:39
把绑定的代码发给你:
DataSet ds = new DataSet();
ds.Tables.Add("stu");
ds.Tables["stu"].Columns.Add("stuNo", typeof(int));
ds.Tables["stu"].Columns.Add("stuName", typeof(string));
ds.Tables["stu"].Columns.Add("stuScore", typeof(int));
ds.Tables["stu"].Rows.Add(new object[] { 1, "a1", 100 });
ds.Tables["stu"].Rows.Add(new object[] { 2, "a2", 100 });
ds.Tables["stu"].Rows.Add(new object[] { 3, "a3", 100 });
ds.Tables["stu"].Rows.Add(new object[] { 4, "a4", 100 });
ds.Tables["stu"].Rows.Add(new object[] { 5, "a5", 100 });
this.ListBox1.DataSource = ds.Tables["stu"];
this.ListBox1.DataValueField = "stuNo";
this.ListBox1.DataTextField = "stuName";
this.ListBox1.DataBind();
我是模拟了一个内存表来绑定到ListBox上 绑定的字段选择的是stuNo和stuName stuName只是该ListBox项的Text ListBox项的Value其实是stuNo 之所有要这样绑定是为了对数据库操作方便 实际上数据从数据库中读出来根本不需要这么多代码 只需要把DataSet填充就行了 不知道楼主会没
#8
huoqilin2007-11-03 09:35
fenzhan.Items[0].Text = "111111111";
string sqlstr = "";
sqlstr = "select * from dq_shi order by shiid asc";
string connstr = ConfigurationManager.ConnectionStrings["conn"].ConnectionString;
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter(sqlstr,conn);
da.Fill(ds);
fenzhan.DataSource = ds.Tables[0].DefaultView;
fenzhan.DataBind();

填充是没问题,正常填充数据
只是另外加的 fenzhan.Items[0].Text = "111111111";
这个显示不出来,请帮忙指点下。
#9
huoqilin2007-11-03 10:04
fenzhan.Items.Insert(0, new ListItem("33", "33"));
fenzhan.Items[0].Text = "1111111";

这两个办法都不行
都是只显示填充的数据,自己加的不显示。
#10
guoxhvip2007-11-03 14:57
fenzhan.Items.Add("");
#11
huoqilin2007-11-03 15:23
fenzhan.Items.Add("");

还是不行,只显示绑定数据库里面的,单独加的这些就是显示不出来
#12
guoxhvip2007-11-03 15:58
不会吧 我试了是可以的fenzhan.Items.Add("111111111"); 这样会在最后一项显示111111111
#13
huoqilin2007-11-05 10:46

还是弄不出来
哎,算了,还是全部一个一个的加吧。

#14
zhanghy10282007-11-05 11:48
fenzhan.Items.Insert(0,new ListItem("11111111","-1"))
不行?
1