在GridView中点击编辑时如何在RowUpdating事件中如何获取下拉框的值???

yy和仔 2014-08-22 07:19:40

 前台代码:<Columns>
<asp:BoundField DataField="DoctorName" HeaderText="姓名" />
<asp:BoundField DataField="Age" HeaderText="年龄" />
<asp:TemplateField HeaderText="性别">
<ItemTemplate>
<%# Eval("Sex") %>
</ItemTemplate>
<EditItemTemplate>
<asp:DropDownList ID="DSex" runat="server" Height="20px" Width="50px">
</asp:DropDownList>

</EditItemTemplate>
</asp:TemplateField>
 RowDataBound事件的代码:
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{

//行的状态是: 编辑状态 或者 (交替行且是编辑状态)
if (e.Row.RowState == DataControlRowState.Edit ||
e.Row.RowState == (DataControlRowState.Alternate | DataControlRowState.Edit))
{
DropDownList DSex = e.Row.FindControl("DSex") as DropDownList;
{
ListItem item1 = new ListItem();
item1.Value = "0";
item1.Text = "女";
DSex.Items.Add(item1);

ListItem item2 = new ListItem();
item2.Value = "1";
item2.Text = "男";
DSex.Items.Add(item2);
}
}

}
}
 RowUpdating事件的代码:
  protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
d.ID = (int)e.Keys["ID"];
d.DoctorName = e.NewValues["DoctorName"] as string;
d.Sex = e.NewValues["Sex"] as string;//获取不到下拉框的值
d.Age = int.Parse(e.NewValues["Age"].ToString());
d.DID = (int)e.Keys["DID"];
  }
请教大神们如何才能获取到下拉框里Sex的值???
...全文
294 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
banmei_1509048664 2014-08-23
  • 打赏
  • 举报
回复
获取下拉框的值,显示GridView绑定的数据信息,编辑数据示例 //设置下拉框数据显示 <asp:DropDownList ID="ddlSelect" runat="server" Font-Size="9pt" Width="75px"> <asp:ListItem>类型编号</asp:ListItem> <asp:ListItem>文章类型</asp:ListItem> </asp:DropDownList> //添加选择下拉框的相关文本 <asp:TextBox ID="txtKey" runat="server" Font-Size="9pt" Width="136px"></asp:TextBox> //显示获取的下拉框数据 <asp:Button ID="btnSearch" runat="server" Font-Size="10pt" OnClick="btnSearch_Click" Text="查询" Width="53px" /> //获取下拉框显示的数据库字段值 protected void btnSearch_Click(object sender, EventArgs e) { SqlData da = new SqlData(); string search = this.ddlSelect.SelectedValue; switch (search) { case "类型编号": da.BindData(this.ClassList, "Select * From ST_class Where ST_c_id Like '%" + this.txtKey.Text + "%'"); break; case "文章类型": da.BindData(this.ClassList, "Select * From ST_class Where ST_c_name Like '%" + this.txtKey.Text + "%'"); break; default: Response.Write("<script lanuage=javascript>alert('出错啦!');location='javascript:history.go(-1)'</script>"); break; } } //更新数据库数据 protected void ClassList_RowEditing(object sender, GridViewEditEventArgs e) { ClassList.EditIndex = e.NewEditIndex; ST_Type_List_Bind(); }//CodeGo.net/ protected void ClassList_RowUpdating(object sender, GridViewUpdateEventArgs e) { string sqlstr0 = "update ST_class set ST_c_name='" + ((TextBox)(ClassList.Rows[e.RowIndex].Cells[2].Controls[0])).Text.ToString().Trim() + "'where ST_c_id='" + ClassList.DataKeys[e.RowIndex].Value.ToString() + "'"; //调用公共类中的ExceSQL方法执行SQL语句 My_sqldata.ExceSQL(sqlstr0); ClassList.EditIndex = -1; ST_Type_List_Bind(); } //更新每一条数据 protected void ClassList_RowDataBound(object sender, GridViewRowEventArgs e) { int i; //执行循环,保证每条数据都可以更新 for (i = 0; i < ClassList.Rows.Count; i++) { //首先判断是否是数据行 if (e.Row.RowType == DataControlRowType.DataRow) { //当鼠标停留时更改背景色 e.Row.Attributes.Add("onmouseover", "c=this.style.backgroundColor;this.style.backgroundColor='Aqua'"); //当鼠标移开时还原背景色 e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor=c"); } } }
yy和仔 2014-08-22
  • 打赏
  • 举报
回复
谢谢各位大神,问题我已经解决了.
  • 打赏
  • 举报
回复
3L的方法是可以的。
yy和仔 2014-08-22
  • 打赏
  • 举报
回复
引用 3 楼 jan307 的回复:
DropDownList ddlSex = (DropDownList )GridView1.Rows[e.RowIndex].Cells[3].FindControl("DSex") d.Sex=ddlSex .SelectedValue; cell的索引你自己看,我不知道你一行有多少个column
获取得到得只是0和1;
jan307 2014-08-22
  • 打赏
  • 举报
回复
DropDownList ddlSex = (DropDownList )GridView1.Rows[e.RowIndex].Cells[3].FindControl("DSex") d.Sex=ddlSex .SelectedValue; cell的索引你自己看,我不知道你一行有多少个column
yy和仔 2014-08-22
  • 打赏
  • 举报
回复
谢谢,不过没有用,我试过了.
淡淡的活着 2014-08-22
  • 打赏
  • 举报
回复
Label Label1 = (Label)(e.Row.FindControl("Label1")); 换成下拉列表的试试··好久没这么做过··不太记得了·

62,041

社区成员

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

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

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

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