这是我的覆盖代码 - 它只是计算捕捉到的位置:
- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset {
if(targetContentOffset->y < 400) {
targetContentOffset->y = 0;
return;
}
int baseCheck = 400;
while(baseCheck <= 10000) {
if(targetContentOffset->y > baseCheck && targetContentOffset->y < baseCheck + 800) {
targetContentOffset->y = (baseCheck + 340);
return;
}
baseCheck += 800;
}
targetContentOffset->y = 0;
}
Run Code Online (Sandbox Code Playgroud)
当我用手指按住一两秒钟来拖动滚动视图然后抬起我的手指时,它通常会动画到位.然而,当我快速"轻弹"它很少动画 - 它只是捕捉到targetContentOffset.我试图模拟默认的分页行为(尝试捕捉到自定义位置除外).
有任何想法吗?
我正在使用PagedDataSource进行gridview的自定义分页.这是代码:
PagedDataSource dataSource = new PagedDataSource();
int virtualRowCount = Convert.ToInt32(dataset.Tables[1].Rows[0]["TotalRows"]);
dataSource.AllowCustomPaging = true;
dataSource.PageSize = 15;
dataSource.VirtualCount = virtualRowCount;
dataSource.DataSource = dataset.Tables[0].DefaultView;
gvTaxPayerLoginDetail.DataSource = dataSource;
gvTaxPayerLoginDetail.DataBind();
Run Code Online (Sandbox Code Playgroud)
我从我的存储过程(在virtualRowCount中设置)和tables[0]数据集中的实际行返回"totalrows" .我得到的结果,但我的寻呼机消失了.寻呼机不再显示.如何告诉gridview从PagedDataSource中获取值?
使用ASP.Net 4
我正在为我的UICollectionView创建自定义分页.我希望底部的一些单元格悬挂在屏幕边缘,但是,通过常规分页,滚动到下一页意味着如果页面底部的一半单元格显示,它将只显示另一半在下一页.我想让单元格悬挂在最后,但是停止分页,以便悬挂在屏幕上的单元格清晰可见.
所以,为了做到这一点,我覆盖了函数 - (void)scrollViewWillEndDragging:(UIScrollView*)scrollView withVelocity:(CGPoint)velocity targetContentOffset :( inout CGPoint*)targetContentOffset
如果我拖了一两秒钟,它看到按预期方式工作,但是,我想效仿"甩尾"的作品这么好启用分页时.当我轻弹我的UICollectionView时,它跳转到targetContentOffset,而不是动画到它.
我该如何防止这种情况?
这是我的代码:
- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset {
if(targetContentOffset->y < 400) {
targetContentOffset->y = 0;
return;
}
int baseCheck = 400;
while(baseCheck <= 10000) {
if(targetContentOffset->y > baseCheck && targetContentOffset->y < baseCheck + 800) {
targetContentOffset->y = (baseCheck + 340);
return;
}
baseCheck += 800;
}
targetContentOffset->y = 0;
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试在ASP.NET中实现DataGrid,并希望实现自定义分页,这样我就不必一次性提供所有数据.我花了几个小时在互联网上进行研究,但没有找到任何有用的东西.
当我查看页面时,我看到网格中的第一组结果,前一个链接被禁用.然而,当我单击下一步时,我再次看到网格的第一页,其中前一个链接被禁用.在调试代码时,我确定永远不会调用MyGrid_PageIndexChanged()事件处理程序.
我在下面提供了简化代码.我已经更改了变量名称和省略方法,专注于数据网格分页问题.
在ASPX文件中:
<asp:DataGrid ID="myGrid" runat="server" GridLines="None" UseAccessibleHeader="true" AutoGenerateColumns="false" AllowPaging="true" AllowCustomPaging="true" PageIndexChanged="MyGrid_PageIndexChanged">
<PagerStyle Mode="NextPrev" NextPageText="Next >" PrevPageText="< Previous" />
<Columns>
<asp:BoundColumn HeaderText="Title" DataField="Name" />
<asp:BoundColumn HeaderText="Date" DataField="Date" />
</Columns>
</asp:DataGrid>
Run Code Online (Sandbox Code Playgroud)
并在CS文件中:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
myGrid.PageSize = 20;
myGrid.VirtualItemCount = GetNumItems();
BindMyGrid();
}
}
protected void MyGrid_PageIndexChanged(object sender, DataGridPageChangedEventArgs e)
{
myGrid.CurrentPageIndex = e.NewPageIndex;
BindMyGrid();
}
private int GetNumItems()
{
return 500;
}
private void BindMyGrid()
{
Data[] array = GetDataFromInternetSomehow();
this.myGrid.DataSource = …Run Code Online (Sandbox Code Playgroud) 我试图访问GridView中的PagerTemplate内的LinkButton.
但是,我得到一个NullReferenceException并且我不知道我在这里做错了什么.
我试过以下......
((LinkButton)GridView1.BottomPagerRow.FindControl("lnkbtnPrevious"));
((LinkButton)GridView1.FindControl("lnkbtnPrevious"));
Run Code Online (Sandbox Code Playgroud)
有人可以帮忙吗?
谢谢!
我有一个gridview,使用存储过程在代码隐藏中进行数据绑定.我也在代码中处理Paging事件,但每当我点击页码时,我会不断获取空数据模板而不是更多行.有什么建议?
编辑:我更改页面索引后,我重新绑定gv的数据源.
这是我的代码 - 我有一个下拉列表,确定数据源是什么:
Protected Sub ddlProjectForm_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ddlProjectForm.SelectedIndexChanged
Dim strProjectFormID As String = Me.ddlProjectForm.SelectedValue
Dim conn As New SqlConnection(WebConfigurationManager.ConnectionStrings("Conn").ConnectionString)
Dim cmd As New SqlCommand()
Dim da As New SqlDataAdapter
Dim ds As New DataSet
If strProjectFormID <> "Select" Then
Try
Using conn
conn.Open()
With cmd
.Connection = conn
.CommandType = CommandType.StoredProcedure
.CommandText = "sp_GetAllFormData"
.Parameters.AddWithValue("@projectFormID", strProjectFormID)
End With
da.SelectCommand = cmd
da.Fill(ds)
Me.gvAllSentData.DataSource = ds.Tables(0)
Me.gvAllSentData.DataBind()
Me.gvAllSentData.Visible = True
End Using …Run Code Online (Sandbox Code Playgroud) 基于上面的教程,我能够在gridview上创建自定义分页,但是,我想限制页面上显示的页码.示例当我有10,000个记录以每页10行显示时,页面链接将加载1到1000个页面链接,这是不理想的.
如何使输出像这样:
先1 2 3 4 5 6 7 8 9 10最后
并自动调整
最后2 3 4 5 6 7 8 9 10 11
等等.
这是创建显示设置的所有页面的代码
private void PopulatePager(int recordCount, int currentPage)
{
double dblPageCount = (double)((decimal)recordCount / decimal.Parse(ddlPageSize.SelectedValue));
int pageCount = (int)Math.Ceiling(dblPageCount);
List<ListItem> pages = new List<ListItem>();
if (pageCount > 0)
{
pages.Add(new ListItem("First", "1", currentPage > 1));
for (int i = 1; i <= pageCount; i++)
{
pages.Add(new ListItem(i.ToString(), i.ToString(), i != currentPage));
}
pages.Add(new ListItem("Last", pageCount.ToString(), currentPage …Run Code Online (Sandbox Code Playgroud) custompaging ×7
asp.net ×5
gridview ×4
paging ×3
uiscrollview ×2
animation ×1
c# ×1
datagrid ×1
findcontrol ×1
ipad ×1
snapping ×1
sql ×1