表a(id,商品名称,price,.......)
表b(mc_id,商品名称)
我用GridView绑定了表a    
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" CellPadding="4"   ForeColor="#333333" GridLines="None" OnRowDeleting="GridView1_RowDeleting" OnRowEditing="GridView1_RowEditing"   OnRowUpdating="GridView1_RowUpdating" OnRowCancelingEdit="GridView1_RowCancelingEdit">  
    <FooterStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />  
 <Columns>  
                            
<asp:BoundField DataField="id" HeaderText="id" ReadOnly="True" />  
<asp:BoundField DataField="商品名称" HeaderText="商品名称" /> 
.........
为了避免用户乱改商品名称
我想把商品名称做成固定格式,让使用者选择。取值来源表b
如何重新设计 
<asp:BoundField DataField="商品名称" HeaderText="商品名称" /> 
绑定         

解决方案 »

  1.   

    可以绑定,在 GridView1_RowDataBound事件中加入代码
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
                    DropDownList list = (DropDownList)e.Row.Cells[5].FindControl("ddlCourse");
                    TextBox txt = (TextBox)e.Row.Cells[6].FindControl("txtNUM");//a表商品id
                    DataSet ds = getAll("select * from course");
                    for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                    {
                        string cid = ds.Tables[0].Rows[i]["mc_id"].ToString();//b表商品id
                        if(txt.text==cid)
                        {
                            list.Items.Add(new ListItem(ds.Tables[0].Rows[i]["cName"].ToString(), cid,true));
                        }
                        else
                        {
                              list.Items.Add(new ListItem(ds.Tables[0].Rows[i]["cName"].ToString(), cid,false));
                        }
                    }
    }
      

  2.   

    if (e.Row.RowType == DataControlRowType.DataRow)
    {
                    DropDownList list = (DropDownList)e.Row.Cells[5].FindControl("ddlCourse");
                    string id=e.Row.Cells[0].Text;//a表商品id
                    DataSet ds = getAll("select * from course");
                    for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                    {
                        string cid = ds.Tables[0].Rows[i]["mc_id"].ToString();//b表商品id
                        if(id==cid)
                        {
                            list.Items.Add(new ListItem(ds.Tables[0].Rows[i]["cName"].ToString(), cid,true));
                        }
                        else
                        {
                              list.Items.Add(new ListItem(ds.Tables[0].Rows[i]["cName"].ToString(), cid,false));
                        }
                    }
    }
    前台
                        <asp:BoundField DataField="s#" HeaderText="编号" />
                        <asp:TemplateField HeaderText="科目">
                            <ItemTemplate>
                                <asp:DropDownList OnSelectedIndexChanged="ddlCourse_SelectedIndexChanged" AutoPostBack="True"
                                    ID="ddlCourse" runat="server">
                                </asp:DropDownList>
                            </ItemTemplate>
                        </asp:TemplateField>
      

  3.   

    只能提供相关让你参考:
    http://www.cnblogs.com/insus/articles/1997458.htmlhttp://www.cnblogs.com/insus/archive/2009/03/13/1411016.html
      

  4.   

    就是在RowDataBound 这个事件里面动态加入或者直接绑定数据源即可
      

  5.   

    首先你的前台要把换成 <asp:TemplateField HeaderText="Team">
                    <ItemTemplate>
                        <%# Eval("商品名称")%>
                    </ItemTemplate>
                    <EditItemTemplate>
                        <asp:HiddenField ID="HDFSex" runat="server" Value='<%# Eval("商品名称") %>' />
                        <asp:DropDownList ID="DDLSex" runat="server" Width="90px" />
                    </EditItemTemplate>
                    <ItemStyle Width="100px" />
                </asp:TemplateField>
    后台: protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.Header)
            {
                e.Row.Attributes.Add("style", "background-image:url('../Image/bbs_title_bg.gif')");
            }
            if (((DropDownList)e.Row.FindControl("DDLSex")) != null)
            {
                DropDownList ddlSex = (DropDownList)e.Row.FindControl("DDLSex");
                ddlSex.Items.Clear();
                ddlSex.Items.Add(new ListItem("手机"));
                ddlSex.Items.Add(new ListItem("电脑"));
               // DropDownList初始被选择的项
                ddlSex.SelectedValue = ((HiddenField)e.Row.FindControl("HDFSex")).Value;
            }
        }列表可以通过查数据库加