程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> 關於C# >> 關於初學者對ispostback的理解幫助

關於初學者對ispostback的理解幫助

編輯:關於C#
 

Page.IsPostBack 是用來檢查目前網頁是否為第一次加載,當使用者第一次浏覽這個網頁時Page.IsPostBack 會傳回False,不是第一次浏覽這個網頁時就傳回True!

Page_Load 事件中就可以使用ispostback來避免做一些重復的動作。主要用於對一些控件做初始化和數據綁定 有時如果不用ispostback 會發現有時出現一些莫名的錯誤
這裡我舉二個例子

例題一(控件初始化):頁面有一個標簽(初始顯示數字為 1 ) 和一個按紐,如何實現單擊一次按鈕標簽顯示的數字相當加1

前台我們定義一個lbl1標簽和一個btn1按紐

錯誤代碼:

 

復制代碼

1 protected void Page_Load(object sender, EventArgs e)
2 {
3 lbl1.Text = "1";
4 }
5 protected void btn1_Click(object sender, EventArgs e)
6 {
7 lbl1.Text = (Convert.ToInt32(lbl1.Text) + 1).ToString();
8 }

復制代碼

上面代碼頁面初始lbl1初始顯示數字為1,不管你單擊btn1按紐多少次lbl1顯示的數字永遠為2

錯誤原因:當你每單擊一次btn1按紐後面文件是先執行Page_Load(..)再執行btn1_Click(..),而每次得到的lbl1的初始值為1而累加不了

正確代碼:

正確代碼

 

 

 

 

 

 

例題二(數據控件綁定):頁面有gridview控件後台綁定數據源,如何正確地實現對數據行的編輯更新刪除等操作

  有二種方法可以做到

方法一是gridview控件自帶的commentfiele 編輯更新刪除功能

  方法二是用TemplateField自定義編輯更新刪除功能

  這裡我們僅實現編輯功能:

  方法一(gridview控件自帶的commentfiele 編輯更新刪除功能)前台頁面代碼


1 <asp:GridView ID="GridView1" runat="server" AllowPaging="True"
2 onrowediting="GridView1_RowEditing">
3 <Columns>
4 <asp:CommandField ShowCancelButton="False" ShowEditButton="True" />
5 </Columns>
6 </asp:GridView>

方法一(gridview控件自帶的commentfiele 編輯更新刪除功能)後台頁面代碼

 

復制代碼

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


}
gridview1Bind(); //此方法不放在IsPostBack裡面也可以

}
private void gridview1Bind()
{
DataTable dt = sqlhelper.ExecuteQuery("SELECT * FROM [Products]", CommandType.Text);
GridView1.DataSource = dt;
GridView1.DataBind();
}
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
GridView1.EditIndex = e.NewEditIndex;
gridview1Bind();
}

復制代碼

  方法二(用TemplateField自定義編輯更新刪除功能)前台代碼


復制代碼

<asp:GridView ID="GridView1" runat="server" AllowPaging="True" OnRowEditing="GridView1_RowEditing">
<Columns>
<asp:TemplateField ShowHeader="False">
<ItemTemplate>
<asp:Button ID="Button1" runat="server" CommandName="edit" Text="編輯" />
</ItemTemplate>
<EditItemTemplate>
<asp:Button ID="Button1" runat="server" CommandName="Update" Text="更新" />&nbsp;<asp:Button
ID="Button2" runat="server" CommandName="Cancel" Text="取消" />
</EditItemTemplate>
<ControlStyle BackColor="#FFC0C0" />
</asp:TemplateField>
</Columns>
</asp:GridView>

復制代碼

  方法二(用TemplateField自定義編輯更新刪除功能)後台代碼

代碼

 

 

 

 

 

 

 

 

 

 

注意方法二gridview1Bind() 不放在ispostback裡面的話會報"回發或回調參數無效"這樣的錯

  方法一可以不放在ispostback裡面但方法二必須放在裡面否則會報錯。
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved