gridview连接SQL2000的pubs数据库中的authors表,其中city列用dropdownlist来表示代码应该如何写

解决方案 »

  1.   

    dropdownlist那一列用模版列
    然后dropdownlist绑定数据源
      

  2.   

    先转化为模板列,再在前台用findcontrol打到这个控件,加载
      

  3.   


    this.dropdownlist.Items.Clear();
    string str="select  city from authors"SqlConnection Sqlcon=new SqlConnection(ConStr);
    SqlCommand sqlcom=new SqlCommand(str,Sqlcon);
    Sqlcon.Open();
    SqlDataReader rd=sqlcom.ExcuteReader();
    while(rd.Read())
    {
     this.dropdownlist.Items.Add(rd["city "].ToString());
    }
    Sqlcon.Close();
    rd.Close();
      

  4.   

            <asp:GridView ID="GridView1" runat="server" OnRowDataBound="GridView1_RowDataBound">
                <Columns>
                    <asp:TemplateField HeaderText="bbb">
                        <ItemTemplate>
                            <asp:DropDownList ID="DropDownList1" runat="server">
                            </asp:DropDownList>
                        </ItemTemplate>
                    </asp:TemplateField>
                </Columns>
            </asp:GridView>    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            DropDownList ddl1 = (DropDownList)(e.Row.FindControl["DropDownList1"]);
            ddl1.DataSource = ds;
            ddl1.DataBind();
        }
      

  5.   

    还是出不来
    这是我的代码请多指教前台代码
    <asp:GridView ID="GridView1" runat="server" OnRowDataBound="GridView1_RowDataBound">
                <Columns>
                    <asp:TemplateField HeaderText="city">
                        <ItemTemplate>
                            <asp:DropDownList ID="DropDownList1" runat="server" DataSource='<%# ddlbind()%>' DataValueField="city" DataTextField="city">
                            </asp:DropDownList>
                        </ItemTemplate>
                    </asp:TemplateField>
                </Columns>
            </asp:GridView>后台代码
    using System;
    using System.Data;
    using System.Configuration;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using System.Data.SqlClient;public partial class _Default : System.Web.UI.Page 
    {
        SqlConnection con = new SqlConnection("server=.;uid=sa;pwd=;database=pubs");
        protected void Page_Load(object sender, EventArgs e)
        {
            
            if (!IsPostBack)
            {
                
                string sqlstr = "select * from authors";
                SqlDataAdapter myda = new SqlDataAdapter(sqlstr,con);
                DataSet myds = new DataSet();
                myda.Fill(myds, "authors");
                GridView1.DataSource = myds;
                GridView1.DataBind();        }
        }
        public SqlDataReader ddlbind()
        {
            string sqlstr = "select city from authors";
            con.Open();
            SqlCommand sqlcom = new SqlCommand(sqlstr,con);
            
            return sqlcom.ExecuteReader();
           
        }    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            DropDownList ddl;
            ddl = (DropDownList)(e.Row.FindControl("DropDownList1"));
            ddl.DataBind();
        }
    }
      

  6.   

    <asp:GridView ID="gv" runat="server" AutoGenerateColumns="false" OnRowDataBound="gv_RowDataBound">
                    <Columns>
                        <asp:BoundField HeaderText="Id" DataField="Id" />
                        <asp:TemplateField HeaderText="Type">
                            <ItemTemplate>
                                <asp:DropDownList ID="ddl" runat="server" SelectedValue='<%# Bind("Type") %>' DataSourceID="ods" DataTextField="Name" DataValueField="Id" >
                                
                                </asp:DropDownList>
                            </ItemTemplate>
                        </asp:TemplateField>
                    </Columns>
                </asp:GridView>
                <asp:ObjectDataSource ID="ods" runat="server" SelectMethod="GetABC" TypeName="Test.ODataSource">
                </asp:ObjectDataSource>GetABC()方法是在Test.ODataSource定义 可以试下这种绑定
      

  7.   


    <asp:GridView ID="GridView1" runat="server" OnRowDataBound="GridView1_RowDataBound"> 
                <Columns> 
                    <asp:TemplateField HeaderText="city"> 
                        <ItemTemplate> 
                            <asp:DropDownList ID="DropDownList1" runat="server" DataValueField="city" DataTextField="city"> 
                            </asp:DropDownList> 
                        </ItemTemplate> 
                    </asp:TemplateField> 
                </Columns> 
            </asp:GridView> protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) 
        { 
            DropDownList ddl; 
            ddl = (DropDownList)(e.Row.FindControl("DropDownList1")); 
            string sqlstr = "select city from authors"; 
            OledbDataAdapter da=new OledbDataAdapter(sqlstr ,con);
            DataSet ds=new DataSet();
            da.Fill(ds);
            ddl.DataSource=ds;
            ddl.DataBind(); 
        } 
      

  8.   

    OledbDataAdapter 改为 SqlDataAdapter
      

  9.   


    <asp:TemplateField HeaderText="">
           <itemtemplate>
               <asp:DropDownList ID="hh" runat="server"></asp:DropDownList>                        
    </itemtemplate>
    </asp:TemplateField>
    protected void SmartGridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                DropDownList dd = (DropDownList)e.Row.Cells[0].FindControl("hh");
                dd.DataSource = DataTable;
                dd.DataTextField = "";
                dd.DataValueField = "";
                dd.DataBind();
            }}
      

  10.   

    asp:TemplateField HeaderText="">
                              <EditItemTemplate>
                                  <asp:DropDownList ID="ddl" runat="server" TabIndex="-1" CssClass="not-null" Width="200px" AutoPostBack="True" OnSelectedIndexChanged="ddl_SelectedIndexChanged" >
                                  </asp:DropDownList> 
                              </EditItemTemplate>                          
                              <ItemTemplate>
                              </ItemTemplate>
                              <ItemStyle Width="250px" CssClass="GVCellStyle" />
                              <HeaderStyle Width="250px" />
                          </asp:TemplateField>
        protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowState == DataControlRowState.Edit || e.Row.RowState == (DataControlRowState.Alternate | DataControlRowState.Edit))
            {
                DropDownList ddl = (DropDownList)e.Row.FindControl("ddl");
                if (ddl != null)
                {
              //绑定数据
                }
            }
        }
    参考