2014-10-02 114 views
1

亲爱的堆栈Overflowers页码不会被调用,PageIndexChanging功能时,我改变gridview的

我在前端页面中的GridView和在这里它是在asp.net代码:

<asp:GridView ID="grdManufact" runat="server" AutoGenerateColumns="False" 
    BackColor="White" BorderColor="#336666" BorderStyle="Double" BorderWidth="3px" CellPadding="4" 
    GridLines="Horizontal" AllowPaging="True" OnRowDataBound="manufGridView_RowDataBound"        EnableModelValidation="False" EnableSortingAndPagingCallbacks="True" HorizontalAlign="Center" OnSelectedIndexChanged="grdManufact_SelectedIndexChanged" OnPageIndexChanging="grdManufact_PageIndexChanging"> 
    <Columns> 
     <asp:BoundField DataField="SrNo" HeaderText="SrNo" /> 
    <asp:BoundField DataField="Manufacturer" HeaderText="Manufacturer" /> 
    <asp:BoundField DataField="Description" HeaderText="Description" /> 
    <asp:BoundField DataField="isModerated" HeaderText="Approved" /> 
    <asp:BoundField /> 

好这是它的主要部分,但它显示正确,并在页面加载时正确绑定。 每当我将页面更改为页面2或3或任何gridview时,我的gridview消失!我曾尝试在PageIndexChanging函数中放置一个断点,但没有达到断点,这告诉我该事件甚至没有触发,但gridview消失。这里是我的后台功能页面索引更改反正:

protected void grdManufact_PageIndexChanging(object sender, GridViewPageEventArgs e) 
{ 
    grdManufact.PageIndex = e.NewPageIndex; 
    BindGrid(); 
} 

,并用于电网绑定BindGrid()函数:

public void BindGrid() 
{ 
    string strConnectionString = ConfigurationManager.ConnectionStrings["ConnectionString2"].ToString(); 
    SqlConnection conn = new SqlConnection(strConnectionString); // Connect to database 
    conn.Open();             // Open Connection 
    string com = "select ManufacturerID as SrNo, ManufacturerName as Manufacturer,  ManufacturerDescription as Description,isModerated From VehicleManufacturer"; 
    SqlDataAdapter adpt = new SqlDataAdapter(com, conn); // Select all manufacturers in the table 
    DataTable dt = new DataTable();         // Create a new Data Table 
    adpt.Fill(dt);             // Fill it with manufacturers 
    grdManufact.DataSource = dt; // Make the datasource of the manufacturer grid the new table 
    grdManufact.DataBind();           // Bind data for the grid 
    conn.Close();          // Close database connection. Disconnect 
} 

这里如果你想太我的页面加载:

protected void Page_Load(object sender,EventArgs e) if(!IsPostBack)//如果这是第一次通过回发加载页面 BindGrid(); //将制造商绑定到gridview else ClientScript.GetPostBackEventReference(this,string.Empty); (Request.Form [“__ EVENTTARGET”] ==“Button2_Click”) { //调用方法 btnDelete_Click(this,new EventArgs()); } } }

你能告诉我我做错了什么或指向我在正确的方向来解决这个问题吗?

回答

1

删除EnableSortingAndPagingCallbacks="True"财产,如果你需要EXCUTE服务器端页面索引改变事件或将其设置false

+0

你应该得到一个大吻。 Mwaaaaaahhhh。它像梦一样运作。 – 2014-10-02 03:56:14

1

我记得如果您设置了EnableViewState = false,会发生这种情况。做它EnableViewState = true!如果网格在每次回发中消失,只需在Page_Load方法中将绑定放入if(!IsPostBack)即可。

+0

的EnableViewState已经成为事实。 PageLoad看起来像这样: – 2014-10-02 03:43:52

+0

protected void Page_Load(object sender,EventArgs e) if(!IsPostBack)//如果这是第一次通过回发加载页面 BindGrid(); //将制造商绑定到gridview else ClientScript.GetPostBackEventReference(this,string.Empty); (Request.Form [“__ EVENTTARGET”] ==“Button2_Click”) { //调用方法 btnDelete_Click(this,new EventArgs()); } } } – 2014-10-02 03:45:10

+0

@SolimanSamirSoliman在问题中添加Page_Load方法,其他人可以更容易地看到它。 – mybirthname 2014-10-02 03:46:05