我想在datagrid中的正在编辑的哪一行显示下拉列表,并且。。。。 参考:http://chs.gotdotnet.com/quickstart/util/srcview.aspx?path=/quickstart/aspplus/samples/webforms/data/datagrid8.src 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 letian(你快乐,所以我快乐) 这个我看过了,他的下拉列表中的数据项是做死的,不是跟那个字段绑定的 <asp:TemplateColumn HeaderText="genre (database)"> <ItemTemplate> <asp:Label id=Label1 runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.genre") %>'> </asp:Label> </ItemTemplate> <EditItemTemplate> <asp:DropDownList id=DropDownList1 runat="server" DataSource="<%# GetGenreTable() %>" DataMember="Genre" DataTextField="genre" DataValueField="genre" Width="120px"> </asp:DropDownList> </EditItemTemplate></asp:TemplateColumn>cspublic DataTable GetGenreTable(){ DataTable dtGenre = new DataTable(); if(Application["GenreTable"] == null) { DataRow dr; DataColumn dc = new DataColumn("genre"); dtGenre.Columns.Add(dc); this.sqlConnection1.Open(); System.Data.SqlClient.SqlDataReader dreader = this.sqlCommand1.ExecuteReader(); while(dreader.Read()) { dr = dtGenre.NewRow(); dr[0] = dreader[0]; dtGenre.Rows.Add(dr); } this.sqlConnection1.Close(); } else { dtGenre = (DataTable) Application["GenreTable"]; } return dtGenre;} letian(你快乐,所以我快乐) 你的代码我看了,应该可以实现跟字段绑定的效果,不过你这样实现是不是过于复杂了,没有简单的直接绑定的方法吗?还有你这样好像不能够显示本字段已经选择的数据项 显示本字段已经选择的数据项private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e){ if(e.Item.ItemType == ListItemType.EditItem){ DataRowView drv = (DataRowView) e.Item.DataItem; String currentgenre = drv["genre"].ToString(); DropDownList ddl = (DropDownList) e.Item.FindControl("DropDownList1"); ddl.SelectedIndex = ddl.Items.IndexOf(ddl.Items.FindByText(currentgenre)); }} letian(你快乐,所以我快乐) 你真厉害 OA中用户角色权限问题 一款相当给力的数据库操作组件:CYQ.Data 服务器按钮点击后跳到了另外一个页面 下面代码有问题吗 项目中的FreeTextBox在D盘 如何通过FreeTextBox将图片上传到E盘,在线等高手帮忙~~~ SQL默认的问题。//。。 Microsoft.Web.UI.WebControls.dll 直接下载 关于字符串比较的 简单问题,在线送分!!! C#进行Post提交时,&连接符导致数据丢失问题 请教高人:关闭浏览器按钮后触法事件? 如何显示一个警示框 访问服务器权限出错!
<ItemTemplate>
<asp:Label id=Label1 runat="server"
Text='<%# DataBinder.Eval(Container, "DataItem.genre") %>'>
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:DropDownList id=DropDownList1 runat="server"
DataSource="<%# GetGenreTable() %>"
DataMember="Genre"
DataTextField="genre"
DataValueField="genre"
Width="120px">
</asp:DropDownList>
</EditItemTemplate>
</asp:TemplateColumn>cspublic DataTable GetGenreTable()
{
DataTable dtGenre = new DataTable();
if(Application["GenreTable"] == null)
{
DataRow dr;
DataColumn dc = new DataColumn("genre");
dtGenre.Columns.Add(dc);
this.sqlConnection1.Open();
System.Data.SqlClient.SqlDataReader dreader =
this.sqlCommand1.ExecuteReader();
while(dreader.Read())
{
dr = dtGenre.NewRow();
dr[0] = dreader[0];
dtGenre.Rows.Add(dr);
}
this.sqlConnection1.Close();
}
else
{
dtGenre = (DataTable) Application["GenreTable"];
}
return dtGenre;
}
System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if(e.Item.ItemType == ListItemType.EditItem){
DataRowView drv = (DataRowView) e.Item.DataItem;
String currentgenre = drv["genre"].ToString();
DropDownList ddl =
(DropDownList) e.Item.FindControl("DropDownList1");
ddl.SelectedIndex =
ddl.Items.IndexOf(ddl.Items.FindByText(currentgenre));
}
}