还是出不来 这是我的代码请多指教前台代码 <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);
然后dropdownlist绑定数据源
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();
<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();
}
这是我的代码请多指教前台代码
<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();
}
}
<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定义 可以试下这种绑定
<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();
}
<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();
}}
<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)
{
//绑定数据
}
}
}
参考