这里有2个GridView,分别绑定不同的数据源,
2个gridview各有一个<PagerTemplate>
<PagerTemplate>
<asp:LinkButton ID="btnPrev" runat="server" CausesValidation="False" CommandName="Page" Text="上一页" CommandArgument="prev" onclick="Grd1btn_Click" ToolTip="到上一页" Enabled="<%# ((GridView)Container.Parent.Parent).PageIndex!=0 %>"></asp:LinkButton>
<asp:LinkButton ID="btnNext" runat="server" CausesValidation="False" CommandName="Page" Text="下一页" CommandArgument="next" OnClick="Grd1btn_Click" ToolTip="到下一页" Enabled="<%# ((GridView)Container.Parent.Parent).PageIndex!=((GridView)Container.Parent.Parent).PageCount-1 %>"></asp:LinkButton>
</PagerTemplate>后台代码:
protected void Grd1btn_Click(object sender, EventArgs e)
{
switch (((LinkButton)sender).CommandArgument.ToString())
{
case "prev":
if (GridView1.PageIndex>=1)
GridView1.PageIndex = GridView1.PageIndex - 1;
break;
case "next":
GridView1.PageIndex = GridView1.PageIndex + 1;
break;
}
initdata();
}
现在我要想2个gridview共享此段代码,分别点击LinkButton的时候对各自的GridView起作用,应该怎么写?
请指点,最好有代码
2个gridview各有一个<PagerTemplate>
<PagerTemplate>
<asp:LinkButton ID="btnPrev" runat="server" CausesValidation="False" CommandName="Page" Text="上一页" CommandArgument="prev" onclick="Grd1btn_Click" ToolTip="到上一页" Enabled="<%# ((GridView)Container.Parent.Parent).PageIndex!=0 %>"></asp:LinkButton>
<asp:LinkButton ID="btnNext" runat="server" CausesValidation="False" CommandName="Page" Text="下一页" CommandArgument="next" OnClick="Grd1btn_Click" ToolTip="到下一页" Enabled="<%# ((GridView)Container.Parent.Parent).PageIndex!=((GridView)Container.Parent.Parent).PageCount-1 %>"></asp:LinkButton>
</PagerTemplate>后台代码:
protected void Grd1btn_Click(object sender, EventArgs e)
{
switch (((LinkButton)sender).CommandArgument.ToString())
{
case "prev":
if (GridView1.PageIndex>=1)
GridView1.PageIndex = GridView1.PageIndex - 1;
break;
case "next":
GridView1.PageIndex = GridView1.PageIndex + 1;
break;
}
initdata();
}
现在我要想2个gridview共享此段代码,分别点击LinkButton的时候对各自的GridView起作用,应该怎么写?
请指点,最好有代码
switch (((LinkButton)sender).CommandArgument.ToString())
{
case "prev":
if (GridView1.PageIndex>=1)
GridView1.PageIndex = GridView1.PageIndex - 1;
break;
case "next":
GridView1.PageIndex = GridView1.PageIndex + 1;
break;
}
initdata();写个函数、放这段代码、然后在每个GridView的相应的OnClick事件里调用这段函数..
GridView1 换成GridView x = ((LinkButton)sender).Parent.Parent...一直找到 GridView即可
然后x.PageIndex = x.PageIndex - 1;思路就是这样的
linkbutton是gridview的成员,可以通过linkbutton的parent属性获取它的上层控件。4楼说的很清楚了。
但提示Cannot implicitly convert type 'System.Web.UI.Control' to 'System.Web.UI.WebControls.GridView'. An explicit conversion exists (are you missing a cast?)
该怎么写才行?
((LinkButton)sender).Parent看是什么,假如是DataPager,就写
(((LinkButton)sender).Parent as DataPager).Parent
直到找到GridView上面只是例子,不一定是 DataPager再说一遍,上面只是例子,可能不止了2次Parent