求助:关于 DataGrid 分页产生一个异常 T_T
我的 DataGrid 在不分页或者只有一页的情况下运行正常,但是一旦页数超过一页就会出现以下异常:
System.Web.HttpException:Class 'DataGridLinkButton'的控件'grdIPCS__ctl9__ctl1'没有放置在 runat=server 标记的内侧。
'DataGridLinkButton'的控件'grdIPCS__ctl9__ctl1'应该就是分页按钮了。
以下是 DataGrid 的设计代码:
<asp:datagrid id="grdIPCS" runat="server" BorderWidth="0px" Width="601" CellSpacing="10" PagerStyle-Mode="NumericPages" PageSize="5" AllowPaging="True" AutoGenerateColumns="False" ShowHeader="False">
<SelectedItemStyle VerticalAlign="Middle"></SelectedItemStyle>
<EditItemStyle VerticalAlign="Middle"></EditItemStyle>
<AlternatingItemStyle VerticalAlign="Middle"></AlternatingItemStyle>
<ItemStyle Height="40px" VerticalAlign="Middle" BackColor="White"></ItemStyle>
<Columns>
<asp:TemplateColumn>
<HeaderStyle Width="100px"></HeaderStyle>
<ItemStyle HorizontalAlign="Center" VerticalAlign="Middle"></ItemStyle>
<ItemTemplate>
<asp:Label ID="ipcsLabel0" Width="100%" Height="100%" runat="server"></asp:Label>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn>
<HeaderStyle Width="100px"></HeaderStyle>
<ItemStyle HorizontalAlign="Center" VerticalAlign="Middle"></ItemStyle>
<ItemTemplate>
<asp:Label ID="ipcsLabel1" Width="100%" Height="100%" runat="server"></asp:Label>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn>
<HeaderStyle Width="100px"></HeaderStyle>
<ItemStyle HorizontalAlign="Center" VerticalAlign="Middle"></ItemStyle>
<ItemTemplate>
<asp:Label ID="ipcsLabel2" Width="100%" Height="100%" runat="server"></asp:Label>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn>
<HeaderStyle Width="100px"></HeaderStyle>
<ItemStyle HorizontalAlign="Center" VerticalAlign="Middle"></ItemStyle>
<ItemTemplate>
<asp:Label ID="ipcsLabel3" Width="100%" Height="100%" runat="server"></asp:Label>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn>
<HeaderStyle Width="100px"></HeaderStyle>
<ItemStyle HorizontalAlign="Center" VerticalAlign="Middle"></ItemStyle>
<ItemTemplate>
<asp:Label ID="ipcsLabel4" Width="100%" Height="100%" runat="server"></asp:Label>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:datagrid>
大家帮忙看看到底是什么问题呀!!分不够再给!!
问题点数:50、回复次数:16Top
1 楼exboy(kuku)回复于 2004-09-03 09:59:58 得分 10
你的DataGrid控件要放在 <form runat="server"> 标签里面才行.Top
2 楼lzwdy(世玉)回复于 2004-09-03 10:00:37 得分 0
ft,这么乱谁看的清楚啊.
检查一下你的PageIndexChanged事件吧Top
3 楼zsms2(不远)回复于 2004-09-03 10:03:21 得分 0
<form runat="server">Top
4 楼yingshis(英石)回复于 2004-09-03 10:05:18 得分 0
upTop
5 楼AlwaysCsharp(yjiang)回复于 2004-09-03 10:13:53 得分 0
To lzwdy(世玉):如果在这么狭小的网页空间你能写出更清楚的代码,请指教!
<form runat="server">肯定是加了的 -_-!,因为“我的 DataGrid 在不分页或者只有一页的情况下运行正常”啊!Top
6 楼AlwaysCsharp(yjiang)回复于 2004-09-03 10:15:17 得分 0
大家帮帮忙啊,仅仅是 DataGrid Pager 表现异常,其他都正常。Top
7 楼AlwaysCsharp(yjiang)回复于 2004-09-03 10:18:12 得分 0
private void grdIPCS_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
{
dtIPCS = (DataTable)Session["IPCSLIST"];
grdIPCS.DataSource = new DataView( dtIPCS );
grdIPCS.CurrentPageIndex = e.NewPageIndex;
grdIPCS.DataBind();
} // end grdIPCS_PageIndexChangedTop
8 楼jamzh(Show me the money!!!)回复于 2004-09-03 10:18:36 得分 0
datagrid有个CurrentPageIndex属性,绑定后都设置下为-1Top
9 楼AlwaysCsharp(yjiang)回复于 2004-09-03 10:31:23 得分 0
谢谢楼上的,但是由 CurrentPageIndex 引发的应该是另外一个异常。试过了,还是不行。
在线等...Top
10 楼listhome(不想睡)(专回百分贴)回复于 2004-09-03 10:37:12 得分 0
<form runat="server">
Top
11 楼AlwaysCsharp(yjiang)回复于 2004-09-03 10:46:15 得分 0
因为 DataGrid 在不分页或者只有一页的情况下运行正常,所以 <form runat="server"> 肯定是存在的!!
代码分离文件(.cs)单步调试后没有问题,异常是出现在 CS 文件执行完以后页面加载时,而且仅当 pageCount > 1 时,也就是说会出现 LinkButton 时产生异常。异常指示说:这个 LinkButton 必须在 runat="server" 标记内,但是 From 包括 DataGrid 都已经设置了 runat="server",这个分页按钮为什么又有错呢?Top
12 楼penning(飞鱼)回复于 2004-09-03 11:06:11 得分 5
我奇怪的是在这,该是
grdIPCS.CurrentPageIndex = e.NewPageIndex;
dtIPCS = (DataTable)Session["IPCSLIST"];
grdIPCS.DataSource = new DataView( dtIPCS );
grdIPCS.DataBind();
吧
Top
13 楼smallMage(小马哥)回复于 2004-09-03 11:24:14 得分 5
Sub MyDataGrid_Page(ByVal sender As Object, ByVal e As DataGridPageChangedEventArgs)
If (e.NewPageIndex > -1 And e.NewPageIndex < MyDataGrid.PageCount) Then
MyDataGrid.CurrentPageIndex = e.NewPageIndex
Else
MyDataGrid.CurrentPageIndex = 0
End If
ShowStats()
End Sub
看看对你有没有帮助Top
14 楼AlwaysCsharp(yjiang)回复于 2004-09-03 11:26:39 得分 0
谢谢!但是试了还是不行。Top
15 楼Edison621(重新来过)回复于 2004-09-03 11:38:05 得分 30
我觉得还是<form runat="server">的问题,你在HTML源文件中查找一下</Form>看Top
16 楼AlwaysCsharp(yjiang)回复于 2004-09-03 12:38:05 得分 0
已经搞定了,如楼上所说,是 </from> 的问题,</form> 到了 <asp:DataGrid> 的上面,虽然 DataGrid 属性 Runat=server,但是它的分页按钮 LinkButton 好像不为 DataGrid 的这个属性所约束。总之,谢谢了。Top




