给dropdownlist赋值的问题

zsxxgreat 2011-07-19 02:48:20
如何把从数据库查询出来的数据,显示在dropdownlist的第一项呢 ?
string connString = System.Web.Configuration.WebConfigurationManager.ConnectionStrings["GreatConnectionString"].ToString();
SqlConnection conn = new SqlConnection(connString);
for (int i = 0; i < GridView1.Rows.Count; i++)
{
int Cid = Convert.ToInt32(GridView1.DataKeys[i].Value);
if ((GridView1.Rows[i].Cells[0].FindControl("CheckBox1") as CheckBox).Checked == true)
{
conn.Open();
SqlCommand cmd = new SqlCommand("select * from TB_Columns where Cid =" + Cid, conn);
SqlDataReader reader = cmd.ExecuteReader();
if (reader.Read())
{
string cloumnName = reader["ColunmnsName"].ToString();
string sequence = reader["Squence"].ToString();
string url = reader["Url"].ToString();
int cid = Convert.ToInt32(reader["Cid"].ToString());
string pid = reader["Pid"].ToString();
string channelName = reader["ChannelName"].ToString();
txtColumnName1.Text = cloumnName;
txtSquence1.Text = sequence;
txtUrl.Text = url;
ddlChannel1.SelectedValue.IndexOf(channelName).ToString();
}
}

}
...全文
464 40 打赏 收藏 转发到动态 举报
写回复
用AI写文章
40 条回复
切换为时间正序
请发表友善的回复…
发表回复
druigang 2011-07-26
  • 打赏
  • 举报
回复
你的DropDownList的值是不是直接添加项添加数据的,这样的话不管用,你在你的方法里添加值就可以了
kiss筱魔 2011-07-21
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 laowang134 的回复:]
引用 2 楼 sfxdawn 的回复:
DropDownList.Items.Add(0,new ListItem(...));

ddl.Items.Insert(0,new ListItem(...));
[/Quote]

ddl.Items.Insert(0,new ListItem(...));
zhangyong2502006 2011-07-21
  • 打赏
  • 举报
回复
string connString = System.Web.Configuration.WebConfigurationManager.ConnectionStrings["GreatConnectionString"].ToString();
SqlConnection conn = new SqlConnection(connString);
for (int i = 0; i < GridView1.Rows.Count; i++)
{
int Cid = Convert.ToInt32(GridView1.DataKeys[i].Value);
if ((GridView1.Rows[i].Cells[0].FindControl("CheckBox1") as CheckBox).Checked == true)
{
conn.Open();
SqlCommand cmd = new SqlCommand("select * from TB_Columns where Cid =" + Cid, conn);
SqlDataReader reader = cmd.ExecuteReader();
if (reader.Read())
{
string cloumnName = reader["ColunmnsName"].ToString();
string sequence = reader["Squence"].ToString();
string url = reader["Url"].ToString();
int cid = Convert.ToInt32(reader["Cid"].ToString());
string pid = reader["Pid"].ToString();
string channelName = reader["ChannelName"].ToString();
txtColumnName1.Text = cloumnName;
txtSquence1.Text = sequence;
txtUrl.Text = url;
//ddlChannel1.SelectedValue.IndexOf(channelName).ToString();
ddlChannel1.SelectedIndex=ddlChannel1.items.findbyvalue('');
//可能还是理解错了你的意思
}
}

}
zhaoqiliang527 2011-07-21
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 sfxdawn 的回复:]

DropDownList.Items.Add(0,new ListItem(...));
[/Quote]

支持!
CqCoder 2011-07-20
  • 打赏
  • 举报
回复
dDl.Items.Insert(0,new ListItem(...));


广木 2011-07-20
  • 打赏
  • 举报
回复
首先绑定你的DropDownList [选择执行]

DropDownList.DataBind();

如果DropDownList里面有你要显示的项:

DropDownList.Items.FindByValue('value').selected=true;//值
DropDownList.Items.FindByText('text').selected=true;//显示

如果DropDownList里面没有你要的项:
DropDownList.Items.Add(0,new ListItem('text','value'));

有一点很重要,确保上面的代码要在DataBind()后面执行,不然就没效果。
DataBind()是重新绑定DropDownList,数据都会重新加载。
tanwan 2011-07-20
  • 打赏
  • 举报
回复
[Quote=引用 29 楼 laowang134 的回复:]
HTML code
<asp:DropDownList ID="ddl" runat="server">
<asp:ListItem Value="1">aa</asp:ListItem>
<asp:ListItem Value="2">bb</asp:ListItem>
<asp:ListItem Value="3">cc</asp:Lis……
[/Quote]

+1~
xingjibing 2011-07-19
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 laowang134 的回复:]
引用 6 楼 zsxxgreat 的回复:
引用 2 楼 sfxdawn 的回复:
DropDownList.Items.Add(0,new ListItem(...));


add没有重载采用2个参数的 - -

Insert
[/Quote]

+1
和永恒有關 2011-07-19
  • 打赏
  • 举报
回复

//清空当前选项
ddlChannel1.ClearSelection();
//根据文本找到所需要的那一项默认选择
ddlChannel1.Items.FindByText(channelName).Selected = true;
PrivateBoy 2011-07-19
  • 打赏
  • 举报
回复

ddlChannel1.SelectedIndex=ddlChannel1.Items.IndexOf(ddlChannel1.Items.FindItemByValue(channelName));
laowang134 2011-07-19
  • 打赏
  • 举报
回复
[Quote=引用 29 楼 laowang134 的回复:]
HTML code

<asp:DropDownList ID="ddl" runat="server">
<asp:ListItem Value="1">aa</asp:ListItem>
<asp:ListItem Value="2">bb</asp:ListItem>
<asp:ListItem Value="3">cc</asp:L……
[/Quote]
直接这样
    protected void Page_Load(object sender, EventArgs e)
{
ListItem lm = ddl.Items.FindByText("cc");//ddl.Items.FindByValue("3");
ddl.Items.Remove(lm);
ddl.Items.Insert(0, lm);
}
laowang134 2011-07-19
  • 打赏
  • 举报
回复
<asp:DropDownList ID="ddl" runat="server">
<asp:ListItem Value="1">aa</asp:ListItem>
<asp:ListItem Value="2">bb</asp:ListItem>
<asp:ListItem Value="3">cc</asp:ListItem>
</asp:DropDownList>


    protected void Page_Load(object sender, EventArgs e)
{
ListItem lm = ddl.Items.FindByText("cc");//ddl.Items.FindByValue("3");
string val = lm.Value;
string text = lm.Text;
ddl.Items.Remove(lm);
ddl.Items.Insert(0, new ListItem(lm.Text, lm.Value));
}
自由_ 2011-07-19
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 laowang134 的回复:]

引用 2 楼 sfxdawn 的回复:
DropDownList.Items.Add(0,new ListItem(...));

ddl.Items.Insert(0,new ListItem(...));
[/Quote]
+1
zsxxgreat 2011-07-19
  • 打赏
  • 举报
回复
[Quote=引用 26 楼 sfxdawn 的回复:]
引用 25 楼 zsxxgreat 的回复:
好吧 可能是我说的不够清楚。
我从数据库读出的数据列 绑定到dropdownlist里面
然后要把某一项排在第一位


汗,找到该项的索引位置

再把它调到first位置
[/Quote]

怎么调 。。。谢谢了 。、
sfxdawn 2011-07-19
  • 打赏
  • 举报
回复
[Quote=引用 25 楼 zsxxgreat 的回复:]
好吧 可能是我说的不够清楚。
我从数据库读出的数据列 绑定到dropdownlist里面
然后要把某一项排在第一位
[/Quote]

汗,找到该项的索引位置

再把它调到first位置
zsxxgreat 2011-07-19
  • 打赏
  • 举报
回复
好吧 可能是我说的不够清楚。
我从数据库读出的数据列 绑定到dropdownlist里面
然后要把某一项排在第一位
zsxxgreat 2011-07-19
  • 打赏
  • 举报
回复
[Quote=引用 23 楼 sfxdawn 的回复:]
引用 22 楼 zsxxgreat 的回复:
引用 18 楼 sfxdawn 的回复:
AppendDataBoundItems=“true”试试看呢


但是不是我想要的效果 因为dropdownlist
会出现重复值


出现重复值好办呀

在每次绑定的代码之前,清空所有item就可以了

DropDownList.Itmes.Clear();

我手打的,不确定……
[/Quote]

绑定前clear不行 。。
sfxdawn 2011-07-19
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 zsxxgreat 的回复:]
引用 18 楼 sfxdawn 的回复:
AppendDataBoundItems=“true”试试看呢


但是不是我想要的效果 因为dropdownlist
会出现重复值
[/Quote]

出现重复值好办呀

在每次绑定的代码之前,清空所有item就可以了

DropDownList.Itmes.Clear();

我手打的,不确定是不是Clear方法

你自己看看吧
zsxxgreat 2011-07-19
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 sfxdawn 的回复:]
AppendDataBoundItems=“true”试试看呢
[/Quote]

但是不是我想要的效果 因为dropdownlist
会出现重复值
红烧半人马 2011-07-19
  • 打赏
  • 举报
回复
ddlChannel1.SelectedValue.IndexOf(channelName).ToString();为什么会有这句代码?
ListItem item = new ListItem("text","value");
ddlChannel1.Items.Add(item);
ddlChannel1.SelectedIndex = ddlChannel1.Items.Count - 1;
加载更多回复(20)

62,046

社区成员

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

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

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

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