问: 我疯了吗?我有这个活动。这个名字是复制/粘贴的,所以我知道这不是拼写错误。我在这里错过了什么? (请不要担心参数,请用于培训,我已被告知此时不要使用它们)
<asp:UpdatePanel ID="UdpEPL" runat="server" UpdateMode="Conditional" Visible="False">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="BtnEpl" EventName="BtnEpl_Click" />
</Triggers>
<ContentTemplate>
<!--some label and textbox controls-->
<br />
<asp:Button ID="BtnEpl" runat="server" Text="Submit" AutoPostBack="True"
onclick="BtnEpl_Click" />
<br />
<!--the second update panel-->
<asp:UpdatePanel ID="UdpEplShow" runat="server" UpdateMode="Conditional" Visible="False">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="BtnEpl" EventName="BtnEpl_Click" />
</Triggers>
<ContentTemplate>
<!--more labels displaying the user input from the first update panel-->
代码隐藏:
protected void BtnEpl_Click(object sender, EventArgs e)
{
string connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString;
string EplQuery = "INSERT INTO EPL (Entity, Employees, CA, MI, NY, NJ, Primex, EplLim, EplSir, Premium, Wage, Sublim) VALUES ('" + TbEplEntity + "', '" + TbEplTotalEmpl + "', '" + TbEplCalEmpl + "', '" + TbEplMichEmpl + "', '" + TbEplNyEmpl + "', '" + TbEplNjEmpl + "', '" + TbEplPrimEx + "', '" + TbEplLim + "', '" + TbEplEplSir + "', '" + TbEplPrem + "', '" + TbEplWage + "', '" + TbEplInvestCost + "')";
string EplIdQuery = "SELECT SCOPE_IDENTITY() AS LastInsertedInstanceId";
using (SqlConnection EplConn = new SqlConnection(connectionString))
{
EplConn.Open();
SqlCommand EplCmd = new SqlCommand(EplQuery, EplConn);
SqlCommand EplIdCmd = new SqlCommand(EplIdQuery, EplConn);
using (EplCmd)
using (EplIdCmd)
{
EplCmd.ExecuteNonQuery();
SqlDataReader EplDr = EplIdCmd.ExecuteReader();
EplDr.Read();
int lastInsertedInstanceId = Convert.ToInt32(EplDr[0]);
}
string x = Request.QueryString["InstanceId"];
string EplShowQuery = "SELECT Entity, Employees, CA, MI, NY, NJ, Primex, EplLim, EplSir, Premium, Wage, Sublim FROM EPL WHERE InstanceId =" + x;
using (SqlCommand EplShowCmd = new SqlCommand(EplShowQuery, EplConn))
{
SqlDataReader EplDr = EplShowCmd.ExecuteReader();
EplDr.Read();
LblEplShowEntity.Text = EplDr.GetString(0);
LblEplShowTotalEmpl.Text = EplDr.GetInt32(1).ToString();
LblEplShowCalEmpl.Text = EplDr.GetInt32(2).ToString();
LblEplShowMichEmpl.Text = EplDr.GetInt32(3).ToString();
LblEplShowNyEmpl.Text = EplDr.GetInt32(4).ToString();
LblEplShowNjEmpl.Text = EplDr.GetInt32(5).ToString();
LblEplShowPrimEx.Text = EplDr.GetInt32(6).ToString();
LblEplShowLim.Text = EplDr.GetInt32(7).ToString();
LblEplShowSir.Text = EplDr.GetInt32(8).ToString();
LblEplShowPrem.Text = EplDr.GetInt32(9).ToString();
LblEplShowWage.Text = EplDr.GetInt32(10).ToString();
LblEplShowInvestCost.Text = EplDr.GetInt32(11).ToString();
}
}
UdpEPL.Visible = false;
UdpEplShow.Visible = true;
}
}
答案 0 :(得分:4)
在触发器中,您只需指定事件名称。
应该是
<asp:AsyncPostBackTrigger ControlID="BtnEpl" EventName="Click" />
代替
<asp:AsyncPostBackTrigger ControlID="BtnEpl" EventName="BtnEpl_Click" />
答案 1 :(得分:0)
您是否在某个时候关闭了First ContentTemplate?如果您在按钮标记后执行此操作,请启用ChildrenAsTriggers =&#34; true&#34;。
答案 2 :(得分:0)
为了回答这个问题,我必须指出我的错误。 @Muhammad问我为什么面板设置为visible = false;这是因为我尝试接近页面结构的方式。我想使用ajax来显示输入表单,然后在提交给数据库时隐藏它们并以只读格式显示数据,所以我想我会将这两个表单放在更新面板中并使它们不可见,直到它们被调用为止下拉列表。不幸的是,我发现触发器不会触发不可见的控件。不要引用我,但据我了解,这是因为不可见的服务器端控件不会向浏览器发送标记。学过的知识。