0

我用 modalpopextender 创建了一个面板,但是当我单击面板内的按钮时,面板消失了。

这是 modalpopup 的 asp.net 代码

 <td class="style3">
                <asp:Button ID="Button5" runat="server" style="background-color: #FFFFFF" />
                <asp:ModalPopupExtender ID="answer" runat="server" DynamicServicePath="" 
                    Enabled="True" TargetControlID="Button5" PopupControlID="Panel1" CancelControlID="Button3" >
                </asp:ModalPopupExtender>
            </td>

这是用于将数据插入数据库并显示 modalpopup 面板的 asp.net:

 string sql = "insert into questions (id,quest,mark) values (@id,@quest,@mark);select scope_identity();";
    SqlCommand x = new SqlCommand(sql, con);
    x.Parameters.AddWithValue("@id", Session["exam"].ToString());
    x.Parameters.AddWithValue("@quest", TextBox1.Text );
    x.Parameters.AddWithValue("@mark", TextBox2.Text);
    con.Open();
    Session["quest"] = x.ExecuteScalar().ToString();
    con.Close();
    answer.Show();
4

2 回答 2

0

ModalPopupExtender如果您回发到服务器,您必须显示,您可以使用Page_PreRender

protected void Page_PreRender(object sender, System.EventArgs e)
{
    answer.Show();
}
于 2013-11-11T16:15:46.073 回答
0

当您单击面板中的按钮时,它会导致完整的回发。在这种情况下,它将页面返回到原始状态,并忽略打开的模式面板。

我建议将更新面板放在面板内,并将所有面板内容放在更新面板内。

这将告诉 asp.net 只进行部分回发,并且只刷新更新面板内的控件。

于 2013-11-11T16:17:46.373 回答