怎样在 GridView 中用 DropDownList 来更新数据? 10
如图,我在SQLServer中新建了两种表:Person和city。主要代码如下:我要实现的是用下拉菜单更新某人所在城市,但发现在一个数据源中无法访问另一个数据源的变量,...
如图,我在 SQL Server 中新建了两种表:Person和city。
主要代码如下:
我要实现的是用下拉菜单更新某人所在城市,但发现在一个数据源中无法访问另一个数据源的变量,C#后台代码又无法访问编辑模版中的下拉菜单控件。这么一个很基本的问题我研究了一个星期了都搞不定,帮帮我。
模板里面两个都是 SqlDataSource2 漏改了一个。两种表→两张表,打错字。 展开
主要代码如下:
我要实现的是用下拉菜单更新某人所在城市,但发现在一个数据源中无法访问另一个数据源的变量,C#后台代码又无法访问编辑模版中的下拉菜单控件。这么一个很基本的问题我研究了一个星期了都搞不定,帮帮我。
模板里面两个都是 SqlDataSource2 漏改了一个。两种表→两张表,打错字。 展开
3个回答
展开全部
不要用系统自带的字段,添加一个模板字段,自定义实现显示内容,自己添加更新按钮,在按钮的点击事件中更新数据,数据源直接用代码从数据库获取(ADO.NET),在页面加载事件中绑定
<asp:GridView ID="gvList" runat="server" CellPadding="4" ForeColor="#333333" GridLines="None" AutoGenerateColumns="False" Width="90%" CssClass="grid_b" OnRowDataBound="gvList_RowDataBound">
<Columns>
<asp:TemplateField>
<HeaderTemplate>
此处为标题模板
</HeaderTemplate>
<ItemTemplate>
此处为行模板
</ItemTemplate>
</asp:TemplateField>
</Columns>
<EmptyDataTemplate>
<div style="width: 100%; text-align: center;">当前没有数据,请添加!</div>
</EmptyDataTemplate>
<RowStyle BackColor="white" />
</asp:GridView>
2015-05-03
展开全部
1. <asp:DropDownList ID="ddlEsbName" runat="server" CssClass="more" AutoPostBack="true"
OnSelectedIndexChanged="ddlEsbName_SelectedIndexChanged">
</asp:DropDownList>
private void GetDropDown()
{
ddlEsbName.DataSource = kbView.SelectRegCompanyByGroupBy(1);
ddlEsbName.DataTextField = "CompanyName";
ddlEsbName.DataValueField = "CompanyId";
ddlEsbName.DataBind();
ddlEsbName.Items.Insert(0, new ListItem("所有购物吧", "0"));
}
protected void ddlEsbName_SelectedIndexChanged(object sender, EventArgs e)
{
int pageCount = 0;
PublicLib.Web.PageSplit pSplit = new Tlx.PublicLib.Web.PageSplit(Convert.ToInt32(paginalPbOffer.MethodType), Convert.ToInt32(paginalPbOffer.PageSize));
PbOfferInfo[] _lists = kbView.SelectHistoryProductInfo(ddlEsbName.SelectedValue, pSplit.pageSize, pSplit.pageNo, out pSplit.recordCount, out pageCount);
GridviewID.DataSource = _lists;
paginalPbOffer.RecordCount = pSplit.recordCount;
paginalPbOffer.PageSize = pSplit.pageSize;
GridviewID.DataBind();
}
OnSelectedIndexChanged="ddlEsbName_SelectedIndexChanged">
</asp:DropDownList>
private void GetDropDown()
{
ddlEsbName.DataSource = kbView.SelectRegCompanyByGroupBy(1);
ddlEsbName.DataTextField = "CompanyName";
ddlEsbName.DataValueField = "CompanyId";
ddlEsbName.DataBind();
ddlEsbName.Items.Insert(0, new ListItem("所有购物吧", "0"));
}
protected void ddlEsbName_SelectedIndexChanged(object sender, EventArgs e)
{
int pageCount = 0;
PublicLib.Web.PageSplit pSplit = new Tlx.PublicLib.Web.PageSplit(Convert.ToInt32(paginalPbOffer.MethodType), Convert.ToInt32(paginalPbOffer.PageSize));
PbOfferInfo[] _lists = kbView.SelectHistoryProductInfo(ddlEsbName.SelectedValue, pSplit.pageSize, pSplit.pageNo, out pSplit.recordCount, out pageCount);
GridviewID.DataSource = _lists;
paginalPbOffer.RecordCount = pSplit.recordCount;
paginalPbOffer.PageSize = pSplit.pageSize;
GridviewID.DataBind();
}
追问
谢谢你的例子,但是跟我的问题不同,你的例子是选择下拉菜单的某项后执行 SelectedIndexChanged 事件,事件中并没有更新数据库的操作,而 GetDropDown 根本没被调用。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个是gridview中 CommandField 里面的更新事件
protected void gv_RowUpdating( object sender , GridViewUpdateEventArgs e )
{
DropDownList ddl = gv.Rows[ e.RowIndex ].FindControl( "DropDownList1" ) as DropDownList;
string id = ddl.Text;
}
protected void gv_RowUpdating( object sender , GridViewUpdateEventArgs e )
{
DropDownList ddl = gv.Rows[ e.RowIndex ].FindControl( "DropDownList1" ) as DropDownList;
string id = ddl.Text;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询