2010-12-16 52 views
0

我看到類似的帖子,但有些不明確。ASP.NET中繼器 - 如何刷新按鈕提交數據

這裏是轉發器頭:

<asp:Repeater ID="rptGetAll" OnItemCommand="Buttons_OnItemCommand" runat="server" OnLoad="rptGetAll_Load"> 

我有一個按鈕:

<asp:Button ID="Submit" runat="server" OnClick="Submit_Click" Text="Save" /> 

和我有後臺代碼插入/更新數據庫中的數據,然後我設置:

using (SqlConnection con = new SqlConnection(conString)) 
      { 
       con.Open(); 
       using (SqlCommand cmd = new SqlCommand("administratorUpdate", con)) 
       { 
        cmd.Parameters.Add("@originalID", SqlDbType.VarChar).Value = hfID.Value; 
        cmd.Parameters.Add("@firstName", SqlDbType.VarChar).Value = MyGlobals.SafeSqlLiteral(txtFirstName.Text, 2); 
        cmd.Parameters.Add("@lastName", SqlDbType.VarChar).Value = MyGlobals.SafeSqlLiteral(txtLastName.Text, 2); 
        cmd.Parameters.Add("@userName", SqlDbType.VarChar).Value = MyGlobals.SafeSqlLiteral(txtUserName.Text, 1); 
        cmd.Parameters.Add("@emailAddress", SqlDbType.VarChar).Value = MyGlobals.SafeSqlLiteral(txtEmailAddress.Text, 2); 
        cmd.Parameters.Add("@password", SqlDbType.VarChar).Value = MyGlobals.SafeSqlLiteral(txtPassword.Text, 1); 
        cmd.Parameters.Add("@isActive", SqlDbType.VarChar).Value = cbIsActive.Checked; 
        cmd.CommandType = CommandType.StoredProcedure; 
        cmd.ExecuteNonQuery(); 
       } 
       con.Close(); 
      } 
      rptGetAll.DataSource = dt; 
      rptGetAll.DataBind(); 

      //Output Success Message 
      Label lblErrorMessage = (Label)Master.FindControl("lblErrorMessage"); 
      new MyGlobals().DisplayUserMessage("success", "Administrator Updated!", lblErrorMessage); 
      AdminForm.Visible = false; 

但是,當頁面完成後,數據不會更新。我錯過了什麼?

UPDATE: 這是Repeater_Load:

protected void rptGetAll_Load(object sender, EventArgs e) 
{ 
    DataTable dt = new DataTable(); 
    using (SqlConnection con = new SqlConnection(conString)) 
    { 
     using (SqlCommand cmd = new SqlCommand("administratorGetAll", con)) 
     { 
      using (SqlDataAdapter da = new SqlDataAdapter(cmd)) 
      { 
       da.Fill(dt); 
      } 
     } 
    } 
    rptGetAll.DataSource = dt; 
    rptGetAll.DataBind(); 
} 
+0

你可以發佈rptGetAll_Load和Submit_Click的代碼嗎?你在數據綁定之前將數據源設置爲什麼? – 2010-12-16 01:45:54

+0

@Abe我添加了OnLoad事件和OnClick – balexander 2010-12-16 01:55:57

+0

這不是所有的onclick是嗎? – jcolebrand 2010-12-16 02:03:08

回答

1

您結合與以前的數據表填充DT中繼嘗試不同的方法。使用最新數據重新填充數據表,並將其綁定到保存按鈕單擊中繼器。

0

加入您的參數值時,這樣

cmd.Parameters.Add("@originalID", SqlDbType.VarChar); 
cmd.Parameters["@originalID"].Value = hfID.Value; 
+0

這會導致此錯誤'帶ParameterName的@SelParameter'@emailAddress'不包含在此SqlParameterCollection中。'當應用於其他參數 – balexander 2010-12-16 03:40:01

+0

@ Bry4n是否檢查過您的所有參數名稱是否正確? – hallie 2010-12-16 04:49:08

+0

是的,因爲我以前的工作方式 – balexander 2010-12-16 12:32:18