我正在尝试将代码转换为以下方法。
我不知道该怎么做,因为 C# 中没有等价的东西来引发事件。
我想要发生的是Gridview
页面索引更改会冒泡到我的 UI 中,因此我可以在事件中执行一些代码,现在什么都没有发生,因为这是一个设置为 gridview 的自定义寻呼机模板类。
public delegate void PageIndexChanging(object sender, GridViewPageEventArgs e);
public event PageIndexChanging PagerPageIndexChanging;
Private Sub NextLinkBtn_Click(ByVal Sender As Object, ByVal e As EventArgs) Handles NextLinkBtn.Click
Dim gridView As GridView = _container.NamingContainer.NamingContainer
If (gridView.PageIndex < gridView.PageCount - 1) Then
gridView.PageIndex = gridView.PageIndex + 1
End If
FormatPager(gridView)
'Raise PagerPageIndexChanging, passing it the GridView instance using this custom pager template.
RaiseEvent PagerPageIndexChanging(gridView, New GridViewPageEventArgs(gridView.PageIndex))
End Sub
关于这个问题的更多细节。
我在aspnet 页面上有一个gridview。我有一个用于 pagertemplate 的类级别变量
public PagerTemplate GridPagerTemplate = new PagerTemplate();
然后在grids init方法中,我将gridpager模板附加到grids.PagerTemplate ...一切正常,它在第一个next prev last等...我遇到的问题是在我将代码从Vb.net转换为C#之后我无法从 PagerTemplate 类中引发事件以使其在网页上执行...
protected void ui_grdGuests_Init(object sender, EventArgs e)
{
if (GridPagerTemplate != null)
{
ui_grdGuests.PagerTemplate = GridPagerTemplate;
}
}
尝试在 web 表单中放置一个断点,因为这是在执行 pagertemplate 中的代码后我需要让它出现的地方。
protected void ui_grdGuests_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
}