按下提交按钮,把数据写到数据库,dropdownlist总是保存的是第一个值,求大牛帮忙,小弟我纠结了好多天了!以下代码:

u010659083 2016-04-12 11:30:28
各位大牛,求帮忙呀,感激不尽。

前台代码部分::我用的ScriptManager和UpdatePanel结合,局部刷新。点击提交按钮的时候,保存到数据库的dropdownlist的内容始终是第一个。
<div id="Div3" style="margin-bottom:5px; width:600px; text-align:left;">
<asp:Label ID="Label5" runat="server" Text="报修区域:" BackColor="#CCCCCC"></asp:Label>
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<div>
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional"
ChildrenAsTriggers="False">
<ContentTemplate>
<asp:DropDownList ID="DropDownList3" runat="server" Height="19px" Width="80px"
AutoPostBack="True"
onselectedindexchanged="DropDownList3_SelectedIndexChanged" >
<asp:ListItem>--请选择--</asp:ListItem>
<asp:ListItem>A棟厂房</asp:ListItem>
<asp:ListItem>B棟厂房</asp:ListItem>
<asp:ListItem>A棟宿舍</asp:ListItem>
<asp:ListItem>B棟宿舍</asp:ListItem>
<asp:ListItem>研發樓</asp:ListItem>
<asp:ListItem>新建倉庫</asp:ListItem>
<asp:ListItem>無需選擇</asp:ListItem>
</asp:DropDownList>
<asp:DropDownList ID="DropDownList4" runat="server" Height="19px" Width="180px"
DataTextField="adress" DataValueField="adress_detial" AutoPostBack="True" >
</asp:DropDownList>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="DropDownList3"
EventName="SelectedIndexChanged" />
</Triggers>
</asp:UpdatePanel>
</div>
<asp:TextBox ID="TextBox4" runat="server" Width="183px" ></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator4" runat="server" ControlToValidate="TextBox4"
ErrorMessage="不得为空" ForeColor=Red Font-Size=12px ></asp:RequiredFieldValidator>
</div>
后台代码部分::
。。。。省略。。。
if (!IsPostBack)
{

}
}
protected void DropDownList3_SelectedIndexChanged(object sender, EventArgs e)//触发事件
{
conn.Open();
string adress = DropDownList3.SelectedItem.Text.Trim();//地址
string sql2 = @"SELECT adress,adress_detial FROM SAJET.SYS_REPAIR_ADRESS where adress='" + adress + "'";
OracleDataAdapter oda3 = new OracleDataAdapter(sql2, conn);
DataTable dt3 = new DataTable();
oda3.Fill(dt3);
this.DropDownList4.DataSource = dt3;
this.DropDownList4.DataValueField = "adress";
this.DropDownList4.DataTextField = "adress_detial";
this.DropDownList4.DataBind();
}
protected void DropDownList2_SelectedIndexChanged(object sender, EventArgs e)
{
conn.Open();
string duty = DropDownList2.SelectedItem.Text.Trim();//责任单位
string sql2 = @"select BX_DUTYDEPT,BX_KINDS from sajet.sys_repair_kind where BX_DUTYDEPT='" + duty + "'";
OracleDataAdapter oda3 = new OracleDataAdapter(sql2, conn);
DataTable dt3 = new DataTable();
oda3.Fill(dt3);
this.DropDownList1.DataSource = dt3;
this.DropDownList1.DataValueField = "BX_DUTYDEPT";
this.DropDownList1.DataTextField = "BX_KINDS";
this.DropDownList1.DataBind();
}
protected void tijiao_Click(object sender, EventArgs e)
{
EncodeRobert edControl = new EncodeRobert();//创建一个简繁转换对象
TextBox2.Text = edControl.SCTCConvert(ConvertType.Simplified, ConvertType.Traditional, TextBox2.Text);//进行简繁转换
TextBox3.Text = edControl.SCTCConvert(ConvertType.Simplified, ConvertType.Traditional, TextBox3.Text);//进行简繁转换
TextBox4.Text = edControl.SCTCConvert(ConvertType.Simplified, ConvertType.Traditional, TextBox4.Text);//进行简繁转换
TextBox5.Text = edControl.SCTCConvert(ConvertType.Simplified, ConvertType.Traditional, TextBox5.Text);//进行简繁转换
TextBox6.Text = edControl.SCTCConvert(ConvertType.Simplified, ConvertType.Traditional, TextBox6.Text);//进行简繁转换
string user = Convert.ToString(Session["user"]);
string title = TextBox2.Text;//报修主题
string phone = TextBox3.Text;//联系电话
string adress1 = DropDownList3.SelectedItem.Text.Trim();
//int c = DropDownList4.SelectedIndex;
//string adress2 = DropDownList4.Items[c].Text;
//string adress2 = DropDownList4.SelectedValue.ToString();//我一开始以为是这个问题 ,所以试了很多方法还是不行呢
string adress2 = DropDownList4.SelectedItem.Text.Trim();
string adress3 = TextBox4.Text.Trim();//报修区域
string adress4 = adress1 + adress2 + adress3;
string email = TextBox5.Text;//邮箱
//string kinds = DropDownList1.SelectedItem.Text;//报修类型
//string kinds = DropDownList1.SelectedIndex.ToString();//报修类型
string kinds = DropDownList1.SelectedItem.Text;
//int c = DropDownList1.SelectedIndex;
//string kinds = DropDownList1.Items[c].Text;
string dutydept = DropDownList2.SelectedItem.Text;//责任单位
kinds = edControl.SCTCConvert(ConvertType.Simplified, ConvertType.Traditional, kinds);//进行简繁转换
dutydept = edControl.SCTCConvert(ConvertType.Simplified, ConvertType.Traditional, dutydept);//进行简繁转换
//string kinds = DropDownList1.SelectedValue.ToString();
string describe = TextBox6.Text;//问题描述
string gonghao;//报修人工号
string name;//报修人姓名
string dept;//报修人所属部门
if (conn.State != ConnectionState.Open)
{
conn.Open();
}
string sql = @"SELECT EMP_NO,EMP_NAME,SAJET.F_GET_DEPT_NAME(SAJET.F_GET_DEPT_NAME_EMP_NO(EMP_NO)) DEPT_NAME FROM SAJET.SYS_EMP WHERE EMP_NO='" + user + "'";
OracleDataAdapter oda = new OracleDataAdapter(sql, conn);
OracleCommand cmd1 = new OracleCommand(sql, conn);
OracleDataReader oradr = cmd1.ExecuteReader();
//if (oradr.Read())
//{
OracleDataAdapter oda2 = new OracleDataAdapter(sql, conn);
DataTable dt = new DataTable();
oda2.Fill(dt);
gonghao = dt.Rows[0][0].ToString();
name = dt.Rows[0][1].ToString();
dept = dt.Rows[0][2].ToString();
//}
string sql2 = string.Format(@"insert into SYS_GNTREPAIR(BX_title,BX_emp_no,BX_emp_name,BX_emp_detp,BX_kinds,BX_adress,BX_phone,BX_email,BX_dutydept,BX_expecttime,BX_realtime,BX_describe,BX_other1,BX_other2) values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}')", title, gonghao, name, dept, kinds, adress4, phone, email, dutydept, null, null, describe, null, null);
OracleCommand cmd = new OracleCommand(sql2, conn);
cmd.ExecuteNonQuery();
。。。。省略。。。。
...全文
146 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Poopaye 2016-04-12
  • 打赏
  • 举报
回复
UpdateMode设置为Always
  • 打赏
  • 举报
回复
先把updatepannel去掉看是否正确呢 话说你的tijiao按钮怎么不再updatepannel里面 updatepannel弄一个正页面包含么好了哇,简单还不容易出问题
u010659083 2016-04-12
  • 打赏
  • 举报
回复
引用 1 楼 starfd 的回复:
先把updatepannel去掉看是否正确呢 话说你的tijiao按钮怎么不再updatepannel里面 updatepannel弄一个正页面包含么好了哇,简单还不容易出问题
大神,是不是我要把所有的按钮都放在一个updatepannel里面???我刚刚放在里面,点提交页面没反应,出现异常。
u010659083 2016-04-12
  • 打赏
  • 举报
回复
引用 1 楼 starfd 的回复:
先把updatepannel去掉看是否正确呢 话说你的tijiao按钮怎么不再updatepannel里面 updatepannel弄一个正页面包含么好了哇,简单还不容易出问题
我把提交按钮放在updatepannel里面报错,要不要设置什么??
u010659083 2016-04-12
  • 打赏
  • 举报
回复
我试试看。。。。。
by_封爱 2016-04-12
  • 打赏
  • 举报
回复
因为你少了

if (!Page.IsPostBack)
{

}
by_封爱 2016-04-12
  • 打赏
  • 举报
回复
哦不对...没仔细看 你有这句话...

62,039

社区成员

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

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

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

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