目的:在Repeater1的FooterTemplate中动态添加LinkButton实现分页功能,页面换页时希望做到不刷新。部分 aspx:<asp:UpdatePanel ID="upRepeater" runat="server" ChildrenAsTriggers="true">
<ContentTemplate>
<asp:Repeater ID="Repeater1" runat="server" onitemcommand="Repeater1_ItemCommand"
onitemdatabound="Repeater1_ItemDataBound" onitemcreated="Repeater1_ItemCreated">
<HeaderTemplate>
<table>
<tr>
<th style="width: 60px;">
<asp:LinkButton ID="lbtnGenericName" runat="server" Text="Generic Name" CommandName="GenericName" CausesValidation="false"></asp:LinkButton>
</th>
<th style="width: 60px;">
<asp:LinkButton ID="lbtnDisplayName" runat="server" Text="Display Name" CommandName="DisplayName" CausesValidation="false"></asp:LinkButton>
</th>
</HeaderTemplate>
...
<FooterTemplate>
<tr>
<td id="tdFooter" runat="server" colspan="7" style="text-align: center;">
<asp:PlaceHolder ID="ph1" runat="server"></asp:PlaceHolder>
</td>
</tr>
</table>
</FooterTemplate>
</asp:Repeater>
</ContentTemplate>
</asp:UpdatePanel>
后台动态添加LinkButton部分cs代码:int iPageCount = PageCount;
int iPageIndex = PageIndex;
Control ctl = Repeater1.Controls[Repeater1.Controls.Count - 1];
PlaceHolder ph1 = (PlaceHolder)ctl.FindControl("ph1"); for (int i = 0; i < iFinalNum; i++)
{
LinkButton lbtn = new LinkButton();
lbtn.CausesValidation = false;
lbtn.ID = "lbtnLink" + i.ToString();
// PageIndex like 10, 20, 30 & click the left '...'
if (iPageIndex % 10 == 0)
{
lbtn.Text = (iPageIndex + i + 1).ToString();
}
else
{
lbtn.Text = (iPageIndex - (iPageIndex % 10) + i + 1).ToString();
}
iClickIndex = Convert.ToInt32(lbtn.Text) - 1;
lbtn.PostBackUrl = Request.CurrentExecutionFilePath + "?ClickIndex=" + iClickIndex.ToString(); ph1.Controls.Add(lbtn);
ph1.Controls.Add(GetBlankLabel());
ToolkitScriptManager1.RegisterAsyncPostBackControl(lbtn);
}
<ContentTemplate>
<asp:Repeater ID="Repeater1" runat="server" onitemcommand="Repeater1_ItemCommand"
onitemdatabound="Repeater1_ItemDataBound" onitemcreated="Repeater1_ItemCreated">
<HeaderTemplate>
<table>
<tr>
<th style="width: 60px;">
<asp:LinkButton ID="lbtnGenericName" runat="server" Text="Generic Name" CommandName="GenericName" CausesValidation="false"></asp:LinkButton>
</th>
<th style="width: 60px;">
<asp:LinkButton ID="lbtnDisplayName" runat="server" Text="Display Name" CommandName="DisplayName" CausesValidation="false"></asp:LinkButton>
</th>
</HeaderTemplate>
...
<FooterTemplate>
<tr>
<td id="tdFooter" runat="server" colspan="7" style="text-align: center;">
<asp:PlaceHolder ID="ph1" runat="server"></asp:PlaceHolder>
</td>
</tr>
</table>
</FooterTemplate>
</asp:Repeater>
</ContentTemplate>
</asp:UpdatePanel>
后台动态添加LinkButton部分cs代码:int iPageCount = PageCount;
int iPageIndex = PageIndex;
Control ctl = Repeater1.Controls[Repeater1.Controls.Count - 1];
PlaceHolder ph1 = (PlaceHolder)ctl.FindControl("ph1"); for (int i = 0; i < iFinalNum; i++)
{
LinkButton lbtn = new LinkButton();
lbtn.CausesValidation = false;
lbtn.ID = "lbtnLink" + i.ToString();
// PageIndex like 10, 20, 30 & click the left '...'
if (iPageIndex % 10 == 0)
{
lbtn.Text = (iPageIndex + i + 1).ToString();
}
else
{
lbtn.Text = (iPageIndex - (iPageIndex % 10) + i + 1).ToString();
}
iClickIndex = Convert.ToInt32(lbtn.Text) - 1;
lbtn.PostBackUrl = Request.CurrentExecutionFilePath + "?ClickIndex=" + iClickIndex.ToString(); ph1.Controls.Add(lbtn);
ph1.Controls.Add(GetBlankLabel());
ToolkitScriptManager1.RegisterAsyncPostBackControl(lbtn);
}
解决方案 »
- GridView显示mdf数据文件的问题
- 如何控制GridView中模板列的显示与隐藏?
- MVC中ViewData中的数据丢失问题
- Column 'sellerwebName' does not belong to table 'Table'
- 为什么弹出窗口无效?
- 如何将读取到girdview中的行 添加到一个新的 DataTable或dataset中??
- 四个表查询绑定到DataGrid
- 百度百科 本条对我有帮助 如何实现?
- 使用了TreeView,为什么在后台不能直接TreeNode Node1 = new TreeNode();???
- 安装完asp.net forums 2.0后,调试不出页面!
- asp.net安全机制 如何正确处理用户的输入(大家进来讨论哈)
- 有没有人使用过WordPress,进来介绍一下啊
javascript:WebForm_DoPostBackWithOptions..., 而不是 javascript:__doPostBack....
我添加的LinkButton已将其CausesValidation属性设置为false了,而且Repeater1在UpdatePanel中。
http://topic.csdn.net/u/20090907/19/0e9d68f1-76a6-4b28-a0a6-e06047914719.html