asp代码如下
<option value="0">做为社区的分类</option>
<%
set rs_c= server.CreateObject ("adodb.recordset")
sql = "select * from tb_board order by rootid,orders"
rs_c.open sql,conn,1,1
do while not rs_c.EOF%>
<option value="<%=rs_c("boardid")%>" <%if request("editid")<>"" and clng(request("editid"))=rs_c("boardid") then%>selected<%end if%>>
<%if rs_c("depth")>0 then%>
<%for i=1 to rs_c("depth")%>
-
<%next%>
<%end if%><%=rs_c("boardtype")%></option>
<%
rs_c.MoveNext
loop
rs_c.Close
%>
</select>看看如何翻译成asp.net(c#)
不是我懒的确弄了半天也没弄出来我想要的结果
虽然我绑定了但是没有按照要求正确的显示格式,请大家帮忙
我就是想知道如何来循环dataset的东西
就像asp里面的那个do while not rs.eof那种效果
就算多讨论也可以谢谢大家
<option value="0">做为社区的分类</option>
<%
set rs_c= server.CreateObject ("adodb.recordset")
sql = "select * from tb_board order by rootid,orders"
rs_c.open sql,conn,1,1
do while not rs_c.EOF%>
<option value="<%=rs_c("boardid")%>" <%if request("editid")<>"" and clng(request("editid"))=rs_c("boardid") then%>selected<%end if%>>
<%if rs_c("depth")>0 then%>
<%for i=1 to rs_c("depth")%>
-
<%next%>
<%end if%><%=rs_c("boardtype")%></option>
<%
rs_c.MoveNext
loop
rs_c.Close
%>
</select>看看如何翻译成asp.net(c#)
不是我懒的确弄了半天也没弄出来我想要的结果
虽然我绑定了但是没有按照要求正确的显示格式,请大家帮忙
我就是想知道如何来循环dataset的东西
就像asp里面的那个do while not rs.eof那种效果
就算多讨论也可以谢谢大家
dropdownlist.DataTextField = "text字段";
dropdownlist.DataValueField = "value字段";
dropdownlist.DataBind();
DataTable dt = new DataTable(); DataColumn dc = new DataColumn();
dc.ColumnName = "Name";
dc.DataType = typeof(string); dt.Columns.Add(dc);
DataRow dr = null;
for (int i = 0; i < 5; i++)
{
dr = dt.NewRow();
dr["name"] = "name" + i.ToString(); dt.Rows.Add(dr);
}
DropDownList drop = new DropDownList();
drop.DataSource = dt;
drop.DataTextField = "name";
drop.DataValueField = "name";
drop.DataBind();
this.Page.Form.Controls.Add(drop);
dc.ColumnName = "Name";另外没看到有sql语句以及执行打开操作阿能不能给一个完整的例子看看呢?谢谢了
你只要从去数据,返回一个datatable就可以直接绑定了
dropdownlist.DataSource = ds;//dataset
dropdownlist.DataTextField = "text字段";
dropdownlist.DataValueField = "value字段";
dropdownlist.DataBind();
dropdownlist.SelectedIndex = dropdownlist.Items.IndexOf(dropdownlist.Items.FindByValue(request("editid")));
或者 DataSet ds = new DataSet();
dropdownlist.Items.Clear();
foreach (DataRow dr in ds.Tables[0].Rows)
{
ListItem li = new ListItem(dr["boardid"].ToString(),dr["boardid"].ToString());
if(li.Value.Equals(request("editid")))
li.Selected = true;
dropdownlist.Items.Add(li);
}
我的下拉菜单应该是这样的结构1
-11
2
-22
--222
3
4
-44
而我自己邦定的效果是
1
11
2
22
222
3
4
44
我是不知道怎么在前面加上一个-
因为在asp里面能够直接判断每一个字段在每次循环得到值得大小从而决定是否在前面+一个连接符“-”
在asp.net里面我不知道怎么加上
思路我其实都有就是不知道具体的实现代码哪位能仔细看看我的意思呢
case when depth>1 then '-'+result
else result end as ....
或重新遍历数据表里面的数据
for(int i=0;i<ds.Tables["name"].rows.count;i++)
{
if(int32.Parse(ds.Tables["name"].rows[i]["depth"])>1)
{
//s.Tables["name"].rows[i]["depth"]="-"+s.Tables["name"].rows[i]["depth"];
}
}
dropdownlist.Items.Clear();
foreach (DataRow dr in ds.Tables[0].Rows)
{
string value = dr["boardtype"].ToString();
for (int i = 1; i < Convert.ToInt32(dr["depth"]); i++)
{
value = "-" + value;
}
ListItem li = new ListItem( value,dr["boardid"].ToString());
if (li.Value.Equals(request("editid")))
li.Selected = true;
dropdownlist.Items.Add(li);
}