在按钮单击中使用Page_Load方法

时间:2013-08-19 04:07:28

标签: c# asp.net sql-server

点击Page_Load后,我尝试调用btnSubmit方法。对于我的Page_Load,我在列表caseprogress != 'ongoing'的下拉列表框中进行了数据绑定。然后,对于我的btnSubmit_Click,我将一些数据插入到另一个表中,更新caseprogress = 'completed'并调用Page_Load方法。但我的下拉列表框似乎并不重新绑定。 (除非我刷新页面)我尝试在其他页面上使用此方法,但不适用于此。仅供参考我在此页面中没有任何更新面板。同样适用于正在工作的另一个。

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        //Bind data to Dropdownlist box
    }
}

protected void btnSubmit_Click(object sender, EventArgs e)
{
    //Insert / Update data of sql data table

   Page_Load(null, EventArgs.Empty);
}

2 个答案:

答案 0 :(得分:7)

您可以使用方法绑定下拉列表

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        BindData();
    }
}

protected void btnSubmit_Click(object sender, EventArgs e)
{
    //Insert / Update data of sql data table

   BindData();
}

private void BindData()
{
    String policeid = (String)Session["policeid"];
    SqlConnection con = new SqlConnection("Data Source = localhost; Initial Catalog = MajorProject; Integrated Security= SSPI");
    con.Open();
    DataSet ds = new DataSet();
    SqlDataAdapter da = new SqlDataAdapter("Select mr.memberreportid From PoliceAccount pa, MemberReport mr Where pa.policeid = '" + policeid + "' And pa.handle = mr.memberreportid And mr.caseprogress = 'ongoing'", con);
    da.Fill(ds);
    ddlMemberReportID.DataSource = ds;
    ddlMemberReportID.DataTextField = "memberreportid";
    ddlMemberReportID.DataValueField = "memberreportid";
    ddlMemberReportID.DataBind();
    con.Close();
}

并删除Page_Load(null, EventArgs.Empty);代码行

答案 1 :(得分:1)

您的问题可能是您致电Page_Load(null, EventArgs.Empty); 它将导致对Page_Load的双重调用,您在btn_Click事件中调用的最后一个调用将IsPostback = true,并且您的数据不会被绑定。