GridView 每行邦定 Dropdownlist 控件,然后点页面的“确定”按钮,如何把每行的dropdownlist中的值保存下来?

mooooooood 2009-04-23 04:14:04
页面:
<asp:GridView ID="DtgView" runat="server" AutoGenerateColumns="False" Width="98%" Height=98%
BorderStyle="None" GridLines="Horizontal" frame="void" AllowPaging="True" EnableViewState="false"
OnRowDataBound="DtgView_RowDataBound">
<Columns>

<asp:BoundField DataField="EquiId" HeaderText="EquiId" Visible=false />


<asp:TemplateField HeaderText="设备名称">
<ItemTemplate>
<%#GetEquipName(DataBinder.Eval(Container.DataItem, "EquiId").ToString())%>
</ItemTemplate>
<ItemStyle Width="30%" />
</asp:TemplateField >



<asp:TemplateField HeaderText="确认状态">
<ItemTemplate>
<asp:DropDownList ID="DropDownList1" runat="server"></asp:DropDownList>
</ItemTemplate>
<ItemStyle Width="10%" />
</asp:TemplateField >

<tr>
<td align=center>
<asp:Button runat="server" ID="btn_save" Text="保 存" CssClass="NewButton" CausesValidation="false" OnClick="btn_save_Click" />
       
<asp:Button runat="server" ID="btn_submit" Text="确 定" CssClass="NewButton" CausesValidation="false" OnClick="btn_submit_Click" />
</td>
</tr>

服务器:
protected void DtgView_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
DropDownList ddl = (DropDownList)e.Row.FindControl("DropDownList1");
ddl.DataSource = task.GetConfirmStatus();
ddl.DataTextField = "StatusName";
ddl.DataValueField = "id";
ddl.DataBind();
ListItem li = new ListItem("请选择", "0");
ddl.Items.Insert(0, li);
}
}

protected void btn_save_Click(object sender, EventArgs e)
{
//这块怎么写????急!
}

我需要点击“确定键”,将所有的dropdownlist里的值和对应的行的equiid保存到数据库中。不知道该用gridview中的哪个事件能做到,谁能教教我?多谢!
...全文
109 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
mooooooood 2009-04-23
  • 打赏
  • 举报
回复
可以了!
这么写就可以了:
protected void btn_save_Click(object sender, EventArgs e)
{
string var = "";
for (int i = 0; i < DtgView.Rows.Count; i++)
{
var = var + "; " + ((DropDownList)DtgView.Rows[i].Cells[2].FindControl("DropDownList1")).SelectedValue;
}
Response.Write(var);
}

结果为:; 1; 2; 0; 0; 0; 0; 0; 0; 0; 0

多谢!
mooooooood 2009-04-23
  • 打赏
  • 举报
回复
不行啊,得到的是这些:
System.Web.UI.WebControls.DataControlFieldCell; System.Web.UI.WebControls.DataControlFieldCell; System.Web.UI.WebControls.DataControlFieldCell; System.Web.UI.WebControls.DataControlFieldCell; System.Web.UI.WebControls.DataControlFieldCell; System.Web.UI.WebControls.DataControlFieldCell; System.Web.UI.WebControls.DataControlFieldCell; System.Web.UI.WebControls.DataControlFieldCell; System.Web.UI.WebControls.DataControlFieldCell; System.Web.UI.WebControls.DataControlFieldCell
mooooooood 2009-04-23
  • 打赏
  • 举报
回复
我先试一试。多谢ls两位。关键是后台遍历是用gridview的事件还是自己写循环?
harderLi 2009-04-23
  • 打赏
  • 举报
回复
i=0;i<Gridview1.Rows.count;i++
GridView1.rows[i].cells[2]
harderLi 2009-04-23
  • 打赏
  • 举报
回复
<asp:DropDownList ID="ddlProductType" runat="server">
</asp:DropDownList>
<asp:HiddenField ID="HidTypeID" Value='<%# Eval("主键Id") %>' runat="server" />
后台循环遍历每一行 得到数据

62,268

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧