0

データベースによって設定されたドロップダウンリストとページ1のボタンがあります。ボタンをクリックすると、テキストボックスに値を入力して保存ボタンをクリックすると、1つのテキストボックスと2つのボタンを含むページ2がポップアップします。データベースに保存し、閉じるボタンをクリックするとポップアップが閉じ、ポップアップウィンドウに入力した値を取得するために、ページ1のドロップダウンが(ページ全体をリロードせずに)リロードされます。これは私がこれまでに得たものです:

ページ1:

protected void Page_Load(object sender, EventArgs e)
{

    Button1.Attributes.Add("onclick", "window.open('Entry.aspx','','height=200,width=650');return false");

}

ページ2:

protected void btnSave_Click(object sender, EventArgs e)
{
    try
    {
        if (txtfname.Text == String.Empty)
        {
            lblname.Text = "First Name Required";
            lblname.Visible = true;
        }
        else if (txtlname.Text == String.Empty)
        {
            lbllname.Text = "Last name Required";
            lbllname.Visible = true;
        }
        else
        {
            SqlConnection con = new SqlConnection("Data Source=GATE-PC\\SQLEXPRESS;Initial Catalog=dbProfile;Integrated Security=True");
            SqlCommand cmd = new SqlCommand("insert", con);
            cmd.CommandType = System.Data.CommandType.Text;

            cmd.Parameters.AddWithValue("@Lname", txtlname.Text);
            cmd.Parameters.AddWithValue("@Mname", txtmname.Text);
            cmd.Parameters.AddWithValue("@Fname", txtfname.Text);
            cmd.Parameters.AddWithValue("@checkbox1", CheckBox1.Checked);

            cmd.CommandType = System.Data.CommandType.StoredProcedure;
            con.Open();
            cmd.ExecuteNonQuery();
            MessageBox("successfully saved!");
            clear();
        }
    }
    catch (Exception exe)
    {
        throw exe;
    }
}
protected void btnClose_Click(object sender, EventArgs e) 
{ 
   Response.Write("window.opener.location.reload();self.close();"); 
}

誰か親切にこれを手伝ってください。私はC#でasp.netを使用しています。ありがとう。

4

3 に答える 3

0

ドロップダウンリストを追加して、UpdatePanel「閉じる」ボタンをクリックしたときに __doPostBack()、ページ全体ではなく UpdatePanel のみを更新するために使用してみませんか。

次のコードを JavaScript で閉じるボタンの onclick を記述します。

onclick="__doPostBack('UpdatePanel1', '');"

ASP.NET AJAX フレームワークはポストバックをインターセプトし、ここで部分的なポストバックを発生させます。

__doPostBack() を直接呼び出すのは悪い習慣ですが、目的には役立ちます。

于 2013-06-12T06:51:20.583 に答える
0

btnClose_Click 内に書き込みます

Response.Write("<script type='text/javascript'>;window.close();</script>");

次のスクリプトを Entry.aspx に追加します。

<script type="text/javascript">
    window.onunload = refreshParent;
    function refreshParent() {
        var loc = window.opener.location;
        window.opener.location = loc;

    }

</script>
于 2013-06-12T06:16:28.093 に答える