首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • DataGrid嵌套一个DropDownList,DropDownList绑定数据库中数据中遇到了些问题,将仅有的40分献上 [已结贴,结贴人:syzerostorm]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-16 12:59:05 楼主
    我是直接在DataGrid中插入一个模板列,并再模板列放入了一个DropDownList控件,DropDownList控件的数据绑定是采用DataBinder.Eval(Container.DataItem,"a1").ToString(),绑定,并且是绑定成功了!但是,在用DropDownList取出数据库的数据时遇到些问题,比如我的数据是:页面设计,而在DropDownList上显示的却是页、面、设、记、不是数据库一条记录的完成字段,感觉DropDownList把数据分割了。
    40  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • only_endure
    • 等级:
    发表于:2008-05-16 13:00:131楼 得分:0
    Eval改成bind,双向
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-16 13:01:112楼 得分:0
    肯定是你代码的问题。asp.net不具有这样的功能
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • only_endure
    • 等级:
    发表于:2008-05-16 13:01:253楼 得分:0
    而在DropDownList上显示的却是页、面、设、记、不是数据库一条记录的完成字段,感觉DropDownList把数据分割了。
    =======================================================================================
    中间是空格?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-16 13:15:454楼 得分:0
    不常用DataGrid。所以绑定。。。

    但到这样的数据有可能是把这个string给分割了吧。

    char[]?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-16 13:17:305楼 得分:0
    DropDownList不是一个下拉框吗?我现在比如我数据库的数据是页面设计,但是在DropDownList下拉框先掉出页、面、设、记录。发现自己不擅于表达,下面在总结一下吧。我希望在DropDownList下拉框取出的数据是页面设计,而我现在DropDownList
    下拉框下拉框中第一条数据是页,第二条数据面。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-16 13:23:396楼 得分:0
    另外使用bind不行
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-16 13:28:557楼 得分:0
    贴你的代码

    ASP.NET 不能使用Bind
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-16 13:30:088楼 得分:0
    调试一下看看,下拉框中取出的到底是什么东东。不太相信下拉框会把一条数据分成四条……或者,是不是下拉框的宽度太小,一行放不下,自动换行了?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-16 13:56:049楼 得分:0
    我还是贴我的代码吧,调试用了但是不太会
    string ds=ConfigurationSettings.AppSettings["System_manage"];
    SqlConnection myConnection=new SqlConnection(ds);
    SqlDataAdapter fillCmd=new SqlDataAdapter("Select * from table12",myConnection);
    DataSet ds1 =new DataSet();
    fillCmd.Fill(ds1);
    DataGrid1.DataSource=ds1.Tables[0].DefaultView;
    DataGrid1.DataBind();
    this. DataGrid1.DataBind();
    ////////////////////
    DropDownList的绑定就是
    DataBinder.Eval(Container, "DataItem.a1")
    我的数据库的数据是“asf”
    DropDownList第一条数据是“a”
    DropDownList第二条数据是“s”
    DropDownList第三条数据是“f”

    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-16 14:16:0210楼 得分:0
    UP在线等
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-16 14:19:0611楼 得分:0
    ASP.NET 不能使用Bind
    ==
    说错了 是ASP.NET 1.1不能使用Bind
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-16 14:20:2812楼 得分:0
    你这个绑定的方式肯定有问题,我做个Demo给你
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-16 14:26:3813楼 得分:0
    恩,谢谢了,做好以后发到我的邮箱吧,630468771
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-16 14:42:1814楼 得分:0
    up
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-16 14:46:5515楼 得分:0
    HTML code
    <asp:datagrid id="DataGrid1" runat="server" AutoGenerateColumns="False" DataKeyField="au_id"> <Columns> <asp:BoundColumn DataField="au_id" HeaderText="au_id" /> <asp:TemplateColumn HeaderText="state"> <ItemTemplate> <asp:DropDownList id="DropDownList1" runat="server" DataSource='<%# GetStates() %>' DataTextField="state" Text='<%# DataBinder.Eval(Container.DataItem,"state") %>'></asp:DropDownList> </ItemTemplate> </asp:TemplateColumn> </Columns> </asp:datagrid>


    C# code
    private void BindGrid() { SqlConnection cn = new SqlConnection(@"server=.\SQLExpress;uid=sa;pwd=;database=pubs"); SqlDataAdapter da = new SqlDataAdapter("select au_id, state from authors", cn); DataSet ds = new DataSet(); cn.Open(); da.Fill(ds); cn.Close(); DataGrid1.DataSource = ds; DataGrid1.DataKeyField = "au_id"; DataGrid1.DataBind(); } protected DataTable GetStates() { SqlConnection cn = new SqlConnection(@"server=.\SQLExpress;uid=sa;pwd=;database=pubs"); SqlDataAdapter da = new SqlDataAdapter("select distinct state from authors", cn); DataSet ds = new DataSet(); cn.Open(); da.Fill(ds); cn.Close(); return ds.Tables[0]; } protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { BindGrid(); } }
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-16 15:19:5716楼 得分:0
    OK,谢谢amandag的帮助,现在有些头绪了,但是你的答案离我所需要的差一点,按照你的方法我能够取出数据库的所有数据,而我所想要的是DropDownList1取出的数据希望能够与数据库匹配
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-16 15:26:5017楼 得分:40
    <asp:datagrid id="DataGrid1" runat="server" AutoGenerateColumns="False" DataKeyField="au_id">
        <Columns>
            <asp:BoundColumn DataField="au_id" HeaderText="au_id" />
            <asp:TemplateColumn HeaderText="state">
                <ItemTemplate>
                    <asp:DropDownList id="DropDownList1" runat="server" DataSource=' <%# GetStates() %>' DataTextField="state" Text=' <%# DataBinder.Eval(Container.DataItem,"state") %>'> </asp:DropDownList>
                </ItemTemplate>
            </asp:TemplateColumn>
        </Columns>
    </asp:datagrid>

    这个Text属性是点不出来的,但是可以用,不过我是在2005里试成功的,不能肯定在2003中是否可以
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-16 15:31:1418楼 得分:0
    如果还是不行,还有另一种绑定方式,请比较

    HTML code
    <asp:datagrid id="DataGrid1" runat="server" AutoGenerateColumns="False" DataKeyField="au_id" OnItemDataBound="DataGrid1_ItemDataBound"> <Columns> <asp:BoundColumn DataField="au_id" HeaderText="au_id" /> <asp:TemplateColumn HeaderText="state"> <ItemTemplate> <asp:DropDownList id="DropDownList1" runat="server" DataSource='<%# GetStates() %>' DataTextField="state" Text='<%# DataBinder.Eval(Container.DataItem,"state") %>'></asp:DropDownList> </ItemTemplate> </asp:TemplateColumn> <asp:TemplateColumn HeaderText="state"> <ItemTemplate> <asp:DropDownList id="DropDownList2" runat="server"></asp:DropDownList> </ItemTemplate> </asp:TemplateColumn> </Columns> </asp:datagrid>


    C# code
    private void BindGrid() { SqlConnection cn = new SqlConnection(@"server=.\SQLExpress;uid=sa;pwd=;database=pubs"); SqlDataAdapter da = new SqlDataAdapter("select au_id, state from authors", cn); DataSet ds = new DataSet(); cn.Open(); da.Fill(ds); cn.Close(); DataGrid1.DataSource = ds; DataGrid1.DataKeyField = "au_id"; DataGrid1.DataBind(); } protected DataTable GetStates() { SqlConnection cn = new SqlConnection(@"server=.\SQLExpress;uid=sa;pwd=;database=pubs"); SqlDataAdapter da = new SqlDataAdapter("select distinct state from authors", cn); DataSet ds = new DataSet(); cn.Open(); da.Fill(ds); cn.Close(); return ds.Tables[0]; } protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { BindGrid(); } } protected void DataGrid1_ItemDataBound(object sender, DataGridItemEventArgs e) { DropDownList dropTemp; string strState; if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) { strState = ((DataRowView)e.Item.DataItem).Row["state"].ToString(); //对DropDownList做数据绑定 dropTemp = e.Item.FindControl("DropDownList2") as DropDownList; if (dropTemp != null) { SqlConnection cn = new SqlConnection(@"server=.\SQLExpress;uid=sa;pwd=;database=pubs"); string strSql = "select distinct state from authors"; SqlCommand cmd = new SqlCommand(strSql, cn); cn.Open(); dropTemp.DataSource = cmd.ExecuteReader(); dropTemp.DataTextField = "state"; dropTemp.DataBind(); cn.Close(); //到DropDownList中根据type的值去找需要设置为选中状态的项目,将其设置为选中 ListItem item = dropTemp.Items.FindByText(strState); if (item != null) { item.Selected = true; } } } }
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-16 17:07:2019楼 得分:0
    OK,感谢amandag 无私帮助,特此结贴给分
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • lfywy
    • 等级:
    发表于:2008-05-16 22:31:1120楼 得分:0
    mark
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved