关于DropDownList的自动选中问题

ShunYea 2008-06-03 01:46:55
我想从表中读出一条记录来编辑,表中有2个DropDownList,一个ddl_FenLei是绑定了数据库中的一张表,另一个DropDownList2则是手动往里添加了值。如下:

ddl_FenLei:

<asp:DropDownList ID="ddl_FenLei" runat="server" DataSourceID="SqlDataSource1"
DataTextField="tyFenLei" DataValueField="tyFenLei">
</asp:DropDownList>


DropDownList2:

<asp:DropDownList ID="DropDownList2" runat="server">
<asp:ListItem>1</asp:ListItem>
<asp:ListItem>2</asp:ListItem>
<asp:ListItem>3</asp:ListItem>
<asp:ListItem>4</asp:ListItem>
</asp:DropDownList>


现在我想编辑的时候就自动选中记录里的值,先从表中读出了记录的值赋值给dl_ddl2,然后:
for (int i = 0; i < DropDownList2.Items.Count; i++)
{
if (DropDownList2.Items[i].Text.ToString().Trim() == dl_ddl2.ToString().Trim())
{
DropDownList2.Items[i].Selected = true;
break;
}
}


这样就自动选中了DropDownList2中的项,但是这个方法只能对手动添加项即DropDownList2这样的有效,使用了数据源绑定的,像ddl_FenLei就不能实现。

请问高手,我要怎么写代码,才能实现上述功能呢?谢谢!
...全文
220 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
ShunYea 2008-06-03
  • 打赏
  • 举报
回复
谢楼上所有人,已经成功了!
ShunYea 2008-06-03
  • 打赏
  • 举报
回复
谢楼上老大,我试试先!
俩定 2008-06-03
  • 打赏
  • 举报
回复
protected void Page_PreRender(object sender, EventArgs e)
{
Page.DataBind(); //一定要先绑定
this.DropDownList1.Items.FindByValue("5").Selected = true;
}
syc958 2008-06-03
  • 打赏
  • 举报
回复
public static void getsort(string str, DropDownList cnl)
{
SqlConnection conn = getconn();
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter(str, conn);
da.Fill(ds, "sorttable");
DataTable tab = ds.Tables[0];
if (tab.Rows.Count == 0)
{}
else
{
for (int i = 0; i < tab.Rows.Count; i++)
{ cnl.Items.Add(tab.Rows[i].ItemArray[0].ToString()); }
}
conn.Close();
conn.Dispose();
}



getsort("select _sort from _newssort where _tosort='" + ds.Tables[0].Rows[0].ItemArray[2].ToString() + "'", DropDownList2);
ListItem item2 = DropDownList2.Items.FindByValue(ds.Tables[0].Rows[0].ItemArray[3].ToString());
if (item2 != null)
{

item2.Selected = true;
}





楼主改一下就可以了!
ShunYea 2008-06-03
  • 打赏
  • 举报
回复
唉,难道非要手动来绑定吗?
s208ping 2008-06-03
  • 打赏
  • 举报
回复
在cs里绑定值不就行了,何必在aspx里给数据源
ShunYea 2008-06-03
  • 打赏
  • 举报
回复
我也想到可能是楼上这位大哥讲的,但是不会改,我是直接使用了VS的那个数据源,拖了一个过来就绑定到了那个DropDownList上,但是我不知道怎样调整顺序,,请教一下,谢楼上了!
syc958 2008-06-03
  • 打赏
  • 举报
回复
这个时候有个先后的顺序,如果是先执行了查找而后执行绑定那肯定是实现不了的!应该确定是不是在你查找之前给dropdownlist控件绑定了数据! 还有就是你这样写<asp:DropDownList ID="ddl_FenLei" runat="server" DataSourceID="SqlDataSource1"
DataTextField="tyFenLei" DataValueField="tyFenLei">
</asp:DropDownList>

能保证程序是不是先执行的这个绑定,那么问题就解决了!
ShunYea 2008-06-03
  • 打赏
  • 举报
回复
回楼上,我这样写了:

for (int i = 0; i < ddl_FenLei.Items.Count; i++)
{
if (ddl_FenLei.Items[i].Text.ToString().Trim() == dl_FenLei.ToString().Trim())
{
ddl_FenLei.SelectedIndex = i;
break;
}
}


还是没用……
Aderlee 2008-06-03
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 Aderlee 的回复:]
把DropDownList2.Items[i].Selected = true;
改成DropDownList2.SelectedIndex = i;
[/Quote]
有沒有試過這個?
ShunYea 2008-06-03
  • 打赏
  • 举报
回复
回5、6楼,只要含有<asp:ListItem value="1">1 </asp:ListItem>等手动添加的项的DropDownList使用上述代码倒是已经实现了,问题是现在使用数据源的方式绑定值得DropDownList不能实现,如:

<asp:DropDownList ID="ddl_FenLei" runat="server" DataSourceID="SqlDataSource1"
DataTextField="tyFenLei" DataValueField="tyFenLei">
</asp:DropDownList>
hbqcxudong 2008-06-03
  • 打赏
  • 举报
回复
<asp:DropDownList ID="DropDownList2" runat="server">
<asp:ListItem value="1">1</asp:ListItem>
<asp:ListItem value="2">>2</asp:ListItem>
<asp:ListItem value="3">>3</asp:ListItem>
<asp:ListItem value="4">>4</asp:ListItem>
</asp:DropDownList>
hbqcxudong 2008-06-03
  • 打赏
  • 举报
回复
DropDownList2.selectvalue=r1["NumFenlei"].ToString();
ShunYea 2008-06-03
  • 打赏
  • 举报
回复
回一楼,我已经这样了,但似乎没有反应……


SqlDataReader r1 = cmd.ExecuteReader();
if (r1.Read())
{
string dl_FenLei;
dl_FenLei = r1["NumFenlei"].ToString();
ListItem litem = ddl_FenLei.Items.FindByText(dl_FenLei);
if (litem != null)
{
litem.Selected = true;
}
Aderlee 2008-06-03
  • 打赏
  • 举报
回复
把DropDownList2.Items[i].Selected = true;
改成DropDownList2.SelectedIndex = i;
懒牛科技 2008-06-03
  • 打赏
  • 举报
回复
FindByValue() 或者FindByText()方法!
syc958 2008-06-03
  • 打赏
  • 举报
回复
ListItem item1 = DropDownList1.Items.FindByValue(ds.Tables[0].Rows[0].ItemArray[2].ToString());
if (item1 != null)
{

item1.Selected = true;
}
4.1 使用控件显示文本 实例 显示密码格式文本 实例 显示长日期格式时间 实例 显示金额格式文本 4.2 使用控件显示图片 实例 显示验证码图片 实例 动态显示用户头像 实例 使用网页对话框显示图片 实例 实现上传图片 实例 GridView控件显示商品缩略图 4.3 控件的超级链接 实例 ImageButton按钮超级链接查看商品详细信息 实例 GridView控件中使用超级链接模板列查看详细信息 实例 DataList控件模板中使用LinkButton查看详细信息 4.4 下拉列表框的应用 实例 间接改变DropDownList当前选项 实例 实现多个DropDownList控件的联动 实例 动态添加、删除DropDownList控件选项 4.5 单选按钮的应用 实例 性别选择 实例 网络考试系统中单选题答案的选择 4.6 复选框的应用 实例 登录身份选择 实例 网络考试系统中多选题答案的选择 4.7 控件连接数据源 实例 通过向导配置AccessDataSource 实例 通过向导配置SqlDataSource 实例 通过向导配置XmlDataSource 4.8 GridView控件的应用 实例 数据绑定并实现分页功能 实例 选中、编辑、取消、删除数据项 实例 GridView实现正反双项排序功能 实例 GridView控件中DropDownList控件的绑定 实例 通过CheckBox删除选中记录 实例 删除GridView控件行信息弹出确认提示框 实例 在GridView控件中实现自动编号 实例 GridView控件实现主细表 实例 查看当前页详细信息 实例 单元格中指定字符串固定长度 实例 供求信息网审核发布信息 实例 根据学生成绩合格与不合格显示不同颜色 4.9 DataList控件的使用 实例 绑定数据并实现分页 实例 编辑DataList控件模板显示员工信息 实例 DataList控件实现主细表 实例 DataList控件实现删除功能 4.9 Repeater控件的使用 实例 Repeater控件数据绑定 实例 Repeater控件分页 实例 编辑Repeater控件标识商品信息

62,071

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧