1


私の要件は、データベースからすべての国を表示することであり、国ごとにそれぞれの州を表示する必要があります。
したがって、すべての国を表示するには、DataList を使用しました。その `DataLIst の OnItemDataBound 関数 それぞれの状態を表示するためにグリッドビューをバインドしました。
ここで、データリストにある内側のグリッドビューにページネーションを付けたいと思います。
データリスト内にあるグリッドビューのページネーションを処理する方法がわかりません。

としてグリッドビューをバインドしました。

protected void dataListCountries_OnItemDataBound(object sender, DataListItemEventArgs e)
{       
    if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
    {
        HiddenField hdn = (HiddenField)e.Item.FindControl("hdnCountryID");
        GridView grd = (GridView)e.Item.FindControl("grdDetails");

        objCountries = new Countries();
        lstCountries = objCountries.getallCountries();
        grd.DataSource = lstCountries ;
        grd.DataBind();
    }
}

あなたのいずれかが私に解決策を提供してください。前もって感謝します。

4

2 に答える 2

2

グリッドビューをデータリスト項目からの入力パラメーターにバインドしている場合は、それをデータリストに保持するためのラベルが必要です。

protected void gv_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        try
        {
            GridView gv = (sender as GridView);
            DataListItem DLItem= (DataListItem)gv.NamingContainer;
            //Label Id = (Label)DLItem.FindControl("lblId");

            gv.PageIndex = e.NewPageIndex;

            //Your gridbinding code
    HiddenField hdn = (HiddenField)DLItem.FindControl("hdnCountryID");
    //GridView grd = (GridView)e.Item.FindControl("grdDetails");

    objCountries = new Countries();
    lstCountries = objCountries.getallCountries();
    gv .DataSource = lstCountries ;//lstOrders;
    gv .DataBind();

        }
        catch (Exception ex)
        {

           // return;
        }

    }

グリッドバインディングコードが含まれています。ここでは、グリッドをバインドするために非表示のフィールド値を使用していないと思います。そして、グリッドを lstOrders ではなく lstCountries にバインドする必要があると思います。

于 2013-07-15T07:48:30.867 に答える
1

gv が gridview で、namingcontainer が親である datalist であるこれを試すことができます。

 protected void gv_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        try
        {
            GridView grd= (sender as GridView);
            GridViewRow gvrow = (GridViewRow)grd.NamingContainer;

             objCountries = new Countries();
    lstCountries = objCountries.getallCountries();
    grd.DataSource = lstOrders;
    grd.DataBind();

            gv.PageIndex = e.NewPageIndex;


        }
        catch (Exception ex)
        {

            return;
        }

    }
于 2013-07-15T07:44:10.720 に答える