我的要求是从数据库中显示所有国家/地区,并且每个国家/地区都必须显示其各自的状态。
因此,为了显示我使用DataList的所有国家/地区。
OnItemDataBound函数`DataLIst我已经绑定了gridview以显示其各自的状态。
现在,我想为在datalist中的内部gridview进行分页。
我不知道如何处理datailist中的gridview分页。
我将网格视图绑定为,
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();
}
}
请你们中的任何一个人为我提供解决方案。提前谢谢。
答案 0 :(得分:2)
如果您使用datalist项目中的某些输入参数绑定gridview,那么您需要有一个标签将其保存在datalist中。
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;
}
}
包含网格绑定代码。我认为您没有使用隐藏字段值来绑定网格。我认为你需要用lstCountries绑定网格而不是lstOrders。
答案 1 :(得分:1)
你可以试试这个 其中gv是gridview,namingcontainer是datalist,它是parent datasettable是要绑定的数据 用于对齐网格的clsCommon.GridViewPopulate 我希望这是有帮助的 写入pageindexchanging属性
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;
}
}