没办法了,找不到资料,想不出来了,只能求助大家了......

zhouzangood 2010-05-06 10:09:29
我在做gridview控件的更新功能,我嵌套了个dropdownlist控件进去(我将某列编辑为模板),现在我把数据绑定到gridview控件中了,其他都能正常显示数据了,模板列中,label控件正常显示数据(例如:hello),但是dropdownlist在编辑状态中是把label控件中的数据hello分5行显示,要怎么在前台绑才能行?

我是这样绑的:DataSource='<%#Bind("name")%>'
...全文
425 59 打赏 收藏 转发到动态 举报
写回复
用AI写文章
59 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhouzangood 2010-05-12
  • 打赏
  • 举报
回复
O(∩_∩)O~,今天我终于把这个搞定了,多谢大家的帮忙!

结贴
微工程 2010-05-10
  • 打赏
  • 举报
回复
[Quote=引用 57 楼 mindsky 的回复:]

C# code

DefaultValue='<%#Bind("name")%>' DataSource='<#GetAllNames()%>'

protected string[] GetAllNames()
{
return 查询数据库返回那3条或者更多条信息();
}



不错,这样更简洁点
[/Quote]

看不出有什么简洁的,到还不如直接使用楼主的返回的LIst<T>。GetAllNames()仍然属于三层性质的(中间转换了一次),虽然你可能不是三层的架构。
这个简单的问题,竟然给越说越乱了起来。
mindsky 2010-05-10
  • 打赏
  • 举报
回复

DefaultValue='<%#Bind("name")%>' DataSource='<#GetAllNames()%>'

protected string[] GetAllNames()
{
return 查询数据库返回那3条或者更多条信息();
}


不错,这样更简洁点
zhangyongtian_0810 2010-05-10
  • 打赏
  • 举报
回复
路过 看一眼
微工程 2010-05-10
  • 打赏
  • 举报
回复
[Quote=引用 52 楼 sp1234 的回复:]

csdn上大多数人都是学的初级程序员的思路,而不是初级设计师的思路,因此比较倾向于写一堆代码,而楼主给出数据绑定表达方法则不习惯了。
[/Quote]
请教一下初级程序员的思路的思路是什么?初级设计师的思路又是什么?
写一堆代码是初级程序员的思路?
数据绑定表达方法和写代码有什么差别呢?难道仅仅是放的位置不同?
微工程 2010-05-10
  • 打赏
  • 举报
回复
回答楼主,可以不用数据源控件
gridview对应一个table或List就行
droplist你也可以用代码加入到item中
总之,这是个5分钟就可以搞定的小问题
我实在搞不明白,怎么就搞不定呢?
我建议,从简单逐步推广的到复杂。
建议楼主看一下我在42楼说的建议,从简单的地方入手,弄清后再加到你的项目中
现在先要做的是弄清其中的对应关系。
  • 打赏
  • 举报
回复
DataSource='<%#GetAllNames()%>' 上面少写了一个百分号。


这个问题非常容易看出来,把一个字符串绑定到DataSource上非常明显。看来楼主以后只能更多靠自己仔细了!
  • 打赏
  • 举报
回复
csdn上大多数人都是学的初级程序员的思路,而不是初级设计师的思路,因此比较倾向于写一堆代码,而楼主给出数据绑定表达方法则不习惯了。
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 zhouzangood 的回复:]
就是下来菜单把label控件的hello成这样子显示:
h
e
l
l
o

我是想让他这样显示(假如我数据库有3条信息)
hello1
hello2
hell03

结果他只是给我显示了数据库第一条信息而已,还显示成这样
[/Quote]其实你的问题很浅显,DataSource应该使用一个字符串集合来设置,而你只是设置了<%#Bind("name")%>这样一个字符串。

但是你的问题不好回答的在于,不知道你这里的3条信息从哪里来,不好回答。其实你可以这样绑定值:
DefaultValue='<%#Bind("name")%>' DataSource='<#GetAllNames()%>'

并且
protected string[] GetAllNames()
{
return 查询数据库返回那3条或者更多条信息();
}



当然啦,等你测试通过,有空闲的时候,把这个函数添加2、3行代码使得首先访问访问数据缓存(而不是反复读取数据库)会更好。
yzanm 2010-05-09
  • 打赏
  • 举报
回复
看了很久,有点晕

我是在点击更新后有一个事件

protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
Label labe1 = (Label)GridView1.Rows[e.NewEditIndex].FindControl("Label5"); //编辑的分组label5
int catecoryid = Convert.ToInt32(labe1.Text);
GridView1.EditIndex = e.NewEditIndex;
show();
DropDownList dd = (DropDownList)GridView1.Rows[e.NewEditIndex].FindControl("DropDownList1");//把数据库的装到DropDownList里
dd.DataSource = categoryOper.SelectAll();
dd.DataTextField = "categoryname";
dd.DataValueField = "categoryid";
dd.DataBind();
dd.SelectedValue = labe1 + "";
}
mindsky 2010-05-09
  • 打赏
  • 举报
回复
前面“人生如梦”不是已经给出你思路了么,你所需要的就是二次绑定,gridview1.datasource=list;这是你的第一次绑定,然后你需要在GridView控件的ROwDataBound事件中对DropDownList控件进行第二次绑定
代码:

protected void gv_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
DropDownList ddl = (DropDownList)e.Row.FindControl("DropDownList1");

//此处再访问数据库得到hello1,hello2,hell03的所有记录,存入DataSet里

ddl.DataSource = DataSet;//二次绑定
ddl.DataBind();
}
}
微工程 2010-05-09
  • 打赏
  • 举报
回复
回答楼主,我这样建议
另外重新建立一个测试用的简易website
做成两层的,弄清楚其中的条例后,再加到你的项目中。
1、创建网站
2、创建一个主表,一个代码表
3、放入gridview,datasourceid1、datasourceid2
4、配置数据源,datasourceid1对应主表和gridview,datasourceid2对应代码表和droplist
5、按照对应关系绑定相应字段
6、测试,验证关系。
shaoceo 2010-05-09
  • 打赏
  • 举报
回复
不是吧,就这样,OK了!!!
shaoceo 2010-05-09
  • 打赏
  • 举报
回复
另外,guanlianwei不知道20 的xmlcode怎么做的!用什么思想做的,可以直接在线编译!!!
shaoceo 2010-05-09
  • 打赏
  • 举报
回复
路过见高手支招!!!
duxj007 2010-05-09
  • 打赏
  • 举报
回复
DataSourceID="list_model" DataTextField="支持的CPU系列" DataValueField="编号">
红色这里改成datasourse
zhouzangood 2010-05-09
  • 打赏
  • 举报
回复
[Quote=引用 42 楼 guanlianwei 的回复:]
回答楼主,我这样建议
另外重新建立一个测试用的简易website
做成两层的,弄清楚其中的条例后,再加到你的项目中。
1、创建网站
2、创建一个主表,一个代码表
3、放入gridview,datasourceid1、datasourceid2
4、配置数据源,datasourceid1对应主表和gridview,datasourceid2对应代码表和droplist
5、按照对应关系……
[/Quote]

可不可以不用数据源控件?
hxn1987420 2010-05-09
  • 打赏
  • 举报
回复
学习中 来帮你顶一下~~
hxbr110 2010-05-08
  • 打赏
  • 举报
回复
<asp:DropDownList ID="DropDownList1" runat="server"
DataSourceID="SqlDataSource1" DataTextField="RightName" DataValueField="Id">
</asp:DropDownList>
//下边是数据源控件
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString=""
SelectCommand=""></asp:SqlDataSource>

DropDownList 中DataSourceID是数据源控件的ID DataTextField是要在DropDownList中显示的内容的列名 DataValueFiled 是DropDownList 要提交的值
zhouzangood 2010-05-08
  • 打赏
  • 举报
回复
[Quote=引用 39 楼 guanlianwei 的回复:]

最近忙,刚上来,你试的时候,中间有出错的环节
和泛型无关
你帖了部分代码,但能感觉出绑定位置有些问题
list_model是什么数据源
Drop_support是什么样的状态
[/Quote]


对于你提出的问题:
1、list_model是什么数据源

list_model是List<T>的一个对象。
我用3层写的,有个实体层(model)
List<model> list_model=new List<model>();
我把读出来的数据放这个对象里面了。

2、Drop_support是什么样的状态

你是想问,ID="Drop_support" 的控件放在哪吗?
我在girdview控件中,将某一列编辑成为模板列,然后把处于编辑状态时的控件更换为DropDownList控件(ID="Drop_support")

我现在不知道怎么样把数据绑到这个控件,让别人从下拉菜单中选了
加载更多回复(39)

62,046

社区成员

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

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

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

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