GridView 与 DropDownList 结合问题,纯后台编码 本帖最后由 silence1203 于 2011-02-17 16:59:17 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 动态模版列使用ITemplate或protected void gv_RowEditing(object sender, GridViewEditEventArgs e){gv.EditIndex = e.NewEditIndex;BindData();}protected void gv_RowUpdating(object sender, GridViewUpdateEventArgs e){gv.EditIndex = e.RowIndex;int id = int.Parse(gv.DataKeys(e.RowIndex).Value.ToString());string str = ((DropDownList)gv.Rows(e.RowIndex).FindControl("ddl")).SelectedValue.Trim();} 替换原理 前台<Columns> <asp:BoundField DataField="RoomsName" HeaderText="房间名称" SortExpression="RoomsName" ReadOnly="true" /> <asp:TemplateField HeaderText="1号"> <ItemTemplate> <%# Eval("num1")%></ItemTemplate> <EditItemTemplate> <asp:DropDownList ID="DropDownList1" runat="server" DataSourceID="AccessDataSource" DataTextField="id" DataValueField="id"> </asp:DropDownList> </EditItemTemplate> </asp:TemplateField><asp:AccessDataSource ID="AccessDataSource" runat="server" DataFile="~/App_Data/3YQ.mdb" SelectCommand="SELECT distinct [id] FROM [ttue]"> //替换查询出的字段 </asp:AccessDataSource> </Columns>后台前提 以绑定数据protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { //num1 if((e.Row.RowState == DataControlRowState.Edit) || (e.Row.RowState == (DataControlRowState.Alternate | DataControlRowState.Edit))) { System.Data.DataRowView drv = (System.Data.DataRowView)e.Row.DataItem; DropDownList ddl = (DropDownList)e.Row.Cells[3].FindControl("DropDownList1"); ListItem li = ddl.Items.FindByText(drv["num1"].ToString()); li.Selected = true; }}protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e) { GridViewRow gvr = this.GridView1.Rows[this.GridView1.EditIndex]; //num1 DropDownList ddl = (DropDownList)gvr.Cells[3].FindControl("DropDownList1"); e.NewValues["num1"] = ddl.SelectedValue;} 我想用C#开发一个传奇挖矿外挂. post数据 2.0应用程序调用WCF服务时的用户名密码问题 各位帮我看看哪里错了 一个关于WebRequest简单的问题,急求解~ c#检测网络认证是否连上 引用外部组件出错,已经全部引用该引用的了。 treeview为什么不能返回节点总数? Access数据库与C#问题: win2000 or NT下调用RASAPI32.dll 拨号的问题 C# Asp.Net 服务器端如何向客户端返回数据 C# winform 动态菜单
或
protected void gv_RowEditing(object sender, GridViewEditEventArgs e)
{
gv.EditIndex = e.NewEditIndex;
BindData();
}
protected void gv_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
gv.EditIndex = e.RowIndex;
int id = int.Parse(gv.DataKeys(e.RowIndex).Value.ToString());
string str = ((DropDownList)gv.Rows(e.RowIndex).FindControl("ddl")).SelectedValue.Trim();
}
前台<Columns>
<asp:BoundField DataField="RoomsName" HeaderText="房间名称"
SortExpression="RoomsName" ReadOnly="true" />
<asp:TemplateField HeaderText="1号">
<ItemTemplate>
<%# Eval("num1")%></ItemTemplate>
<EditItemTemplate>
<asp:DropDownList ID="DropDownList1" runat="server" DataSourceID="AccessDataSource"
DataTextField="id" DataValueField="id">
</asp:DropDownList>
</EditItemTemplate>
</asp:TemplateField>
<asp:AccessDataSource ID="AccessDataSource" runat="server" DataFile="~/App_Data/3YQ.mdb"
SelectCommand="SELECT distinct [id] FROM [ttue]"> //替换查询出的字段
</asp:AccessDataSource>
</Columns>
后台
前提 以绑定数据
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
//num1
if((e.Row.RowState == DataControlRowState.Edit) || (e.Row.RowState == (DataControlRowState.Alternate | DataControlRowState.Edit)))
{
System.Data.DataRowView drv = (System.Data.DataRowView)e.Row.DataItem;
DropDownList ddl = (DropDownList)e.Row.Cells[3].FindControl("DropDownList1");
ListItem li = ddl.Items.FindByText(drv["num1"].ToString());
li.Selected = true;
}
}
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
GridViewRow gvr = this.GridView1.Rows[this.GridView1.EditIndex];
//num1
DropDownList ddl = (DropDownList)gvr.Cells[3].FindControl("DropDownList1");
e.NewValues["num1"] = ddl.SelectedValue;
}