我在使用vs2005作一个网站时,需要在Gridview控件中榜定dropdownlist,但vs2005没有datagrid控件,vs2005中的gridview中没有itemdatabound事件,而对于rowdatabound()事件中的参数e与datagrid中的itemdatabound()中的e,二者的属性与方法不完全一样,请问在asp.net2.0中Gridview控件中如何绑定dropdownlist控件?

解决方案 »

  1.   

    听不懂你的意思,什么叫gridview绑定dropdownlist,一般控件是绑定数据的,你的意思是不是把dropdownlist用在gridview的模板列中?
      

  2.   

    dropdownlist的Datasource使用SqlDataSource控件,让.net去自动帮你绑定.
      

  3.   

    使用DataSource控件,你完全可以不写代码就实现它:
    <form id="form1" runat="server">
        <div>
            <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="产品_ID"
                DataSourceID="AccessDataSource1">
                <Columns>
                    <asp:BoundField DataField="产品_ID" HeaderText="产品_ID" InsertVisible="False" ReadOnly="True"
                        SortExpression="产品_ID" />
                    <asp:BoundField DataField="产品名称" HeaderText="产品名称" SortExpression="产品名称" />
                    <asp:BoundField DataField="产品说明" HeaderText="产品说明" SortExpression="产品说明" />
                    <asp:TemplateField HeaderText="类别">
                        <ItemTemplate>
                            <asp:DropDownList ID="DropDownList1" runat="server" DataSourceID="AccessDataSource2"
                                DataValueField="类别_ID" DataTextField="类别名称" SelectedValue='<%#DataBinder.Eval(Container.DataItem,"类别_ID")%>'>
                            </asp:DropDownList>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:BoundField DataField="单价" HeaderText="单价" SortExpression="单价" />
                </Columns>
            </asp:GridView>
            <asp:AccessDataSource ID="AccessDataSource1" runat="server" DataFile="~/App_Data/test.mdb"
                SelectCommand="SELECT [产品 ID] AS 产品_ID, [产品名称], [产品说明], [类别 ID] AS 类别_ID, [单价] FROM [产品]">
            </asp:AccessDataSource>
            <asp:AccessDataSource ID="AccessDataSource2" runat="server" DataFile="~/App_Data/test.mdb"
                SelectCommand="SELECT [类别 ID] AS 类别_ID, [类别名称] FROM [类别]"></asp:AccessDataSource>
            &nbsp;
        
        </div>
        </form>
      

  4.   

    原先在DataGrid里的方法也还可以照样使用:
     <asp:GridView ID="GridView1" runat="server"  .........  OnRowDataBound="GridView1_RowDataBound">********************
        protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowState == DataControlRowState.Normal || e.Row.RowState == DataControlRowState.Alternate )
            {
                DropDownList ddlst = (DropDownList)e.Row.FindControl("DropDownList1");
                ddlst.BackColor = System.Drawing.Color.LightYellow;
                //仍然可以在绑定时找到摸版列里的控件 
            }
        }
      

  5.   

    不是的,我是分页做好了,而是在点击下拉框的时候,gridView里的信息就出现了上述的问题了