首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

updatepanel 里datagridview自带的刷新不起作用,该如何解决

2012-09-14 
updatepanel 里datagridview自带的刷新不起作用贴上代码:aspx:部分asp:UpdatePanel IDuidrunatserve

updatepanel 里datagridview自带的刷新不起作用
贴上代码:
aspx:部分
<asp:UpdatePanel ID="uid" runat="server" UpdateMode="Conditional" >  
  <ContentTemplate>  
  <div >  
  <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
  Width="228px" AllowPaging="true" PageSize="2"
  onrowcancelingedit="GridView1_RowCancelingEdit" 
  onrowdatabound="GridView1_RowDataBound" onrowdeleting="GridView1_RowDeleting" 
  onrowediting="GridView1_RowEditing" onrowupdating="GridView1_RowUpdating" 
  onrowcommand="GridView1_RowCommand" 
  onpageindexchanging="GridView1_PageIndexChanging">
  <Columns>
  <asp:BoundField DataField="au_id" HeaderText="au_id" ReadOnly="True" />  
  <asp:BoundField DataField="au_lname" FooterText="aaaa" HeaderText="au_lname" />
  <asp:BoundField DataField="au_lname" HeaderText="au_lname" />
  <asp:CommandField HeaderText="编辑" ShowEditButton="True" />
  <asp:CommandField HeaderText="删除" ShowDeleteButton="True" />
  </Columns>
  </asp:GridView>
  <br />
  </div>
  </ContentTemplate>  
  </asp:UpdatePanel>

.cs部分
protected void Page_Load(object sender, EventArgs e)
  {
  if (!IsPostBack)
  {
  this.Calendar1.Style["position"] = "absolute";
  this.TextBox1.DataBind();
  GridViewBind();  
  }
   
  }
  private void GridViewBind()
  {
   
  string connStr =ConfigurationManager.AppSettings["DSN"];
  SqlConnection conn = new SqlConnection(connStr);
  string sql1 = "select top 1 au_id,au_lname,au_fname from authors ";
  SqlDataAdapter myAdapter = new SqlDataAdapter(sql1, conn);
  DataSet ds = new DataSet();
  myAdapter.Fill(ds, "authors");
  foreach (DataRow iVer in ds.Tables[0].Rows)
  { string a = iVer[1].ToString();
  string b = iVer[2].ToString();
  }这里读出来的结果是对的 但是显示的不对
  this.GridView1.DataSource = ds.Tables[0].DefaultView;
  this.GridView1.DataBind(); //数据绑定
  }
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
  GridView1.EditIndex = e.NewEditIndex;
  GridViewBind();
}
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
  //string id = GridView1.DataKeys[e.RowIndex].Values[1].ToString();
  string id = GridView1.Rows[e.RowIndex].Cells[0].ToString();
  //string connStr = ConfigurationManager.ConnectionStrings["ConnString"].ConnectionString;
  //string connStr = ConfigurationSettings.AppSettings["DSN"];


  string connStr = ConfigurationManager.AppSettings["DSN"];

  string SqlStr = "delete from authors where au_id='" + id+"'";
  connectAndExcute(connStr,SqlStr);  
}
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
  //string id = GridView1.DataKeys[e.RowIndex].Values[0].ToString();
  string id = GridView1.Rows[e.RowIndex].Cells[0].Text.ToString();
  string lname = ((TextBox)GridView1.Rows[e.RowIndex].Cells[1].Controls[0]).Text.ToString();
  string fname=((TextBox)GridView1.Rows[e.RowIndex].Cells[2].Controls[0]).Text.ToString();
   

  //string connStr = ConfigurationManager.ConnectionStrings["ConnString"].ConnectionString;
  string connStr = ConfigurationManager.AppSettings["DSN"];
  string SqlStr = "update authors set au_lname='" + lname + "',au_fname='" +fname+ "' where au_id='" + id+"'";
  connectAndExcute(connStr,SqlStr);
}
protected void connectAndExcute(string connStr,string sql)
{
  try
  {
  SqlConnection conn = new SqlConnection(connStr);
  if (conn.State.ToString() == "Closed") conn.Open();
  SqlCommand comm = new SqlCommand(sql, conn);
  comm.ExecuteNonQuery();
  comm.Dispose();
  if (conn.State.ToString() == "Open") conn.Close();

  GridView1.EditIndex = -1;
  GridViewBind();
  uid.Update();
  }
  catch (Exception ex)
  {
  Response.Write("数据库错误,错误原因:" + ex.Message);
  Response.End();
  }
}
WEB页面载入的时候显示的就不对,点更新后显示的东西和没点更新之前效果一样。。急等

protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
  GridView1.EditIndex = -1;
  GridViewBind();
}

[解决办法]
每个操作后面都加个 GridViewBind();看看

热点排行