FineUI 官方论坛
标题:
表格可编辑行的问题
[打印本页]
作者:
虫子
时间:
2013-7-4 11:35
标题:
表格可编辑行的问题
“/”应用程序中的服务器错误。
索引超出范围。必须为非负值并小于集合大小。
参数名: index
说明:
执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息:
System.ArgumentOutOfRangeException: 索引超出范围。必须为非负值并小于集合大小。
参数名: index
第二次编辑的时候就会出这个错,第一次不会出错,是什么原因呢?
作者:
虫子
时间:
2013-7-4 15:30
贴源码出来
aspx页的
<form id="form1" runat="server">
<x:PageManager ID="PageManager1" runat="server" AutoSizePanelID="Panel3" />
<x:Panel ID="Panel3" Title="" runat="server" AnchorValue="99% 99%"
BodyPadding="1px" ShowBorder="false" Layout="Fit" EnableBackgroundColor="false" ShowHeader="false">
<Toolbars>
<x:Toolbar Width="1000px">
<Items>
<x:Button ID="but_saveGrid" Icon="SystemSave" Text="保存" runat="server" OnClick="but_saveGrid_Click">
</x:Button>
</Items>
</x:Toolbar>
</Toolbars>
<Items>
<x:Grid ID="Grid1" AutoHeight="false" runat="server" PageSize="12" Height="400px" DataKeyNames="id,tlang" AllowPaging="true" IsDatabasePaging="true" AnchorValue="98% 98%" Title="单词列表" AllowCellEditing="true" ClicksToEdit="1">
<Columns>
<x:TemplateField Width="60px">
<ItemTemplate>
<asp:Label ID="Label2" runat="server" Text='<%# Container.DataItemIndex + 1 %>'></asp:Label>
</ItemTemplate>
</x:TemplateField>
<x:TemplateField Width="180px" HeaderText="源语言">
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%#Eval("slang") %>'></asp:Label>
</ItemTemplate>
</x:TemplateField>
<x:RenderField Width="300px" ColumnID="tlagn" DataField="tlagn" FieldType="String" HeaderText="目标语言">
<Editor>
<x:TextBox ID="tbxEditTlagn" runat="server">
</x:TextBox>
</Editor>
</x:RenderField>
</Columns>
<PageItems>
<x:ToolbarSeparator ID="ToolbarSeparator1" runat="server">
</x:ToolbarSeparator>
<x:Button ID="ref" Icon="PageRefresh" runat="server" OnClick="ref_Click"></x:Button>
<x:ToolbarSeparator ID="ToolbarSeparator2" runat="server">
</x:ToolbarSeparator>
<x:ToolbarText ID="ToolbarText1" runat="server" Text="每页记录数:">
</x:ToolbarText>
<x:DropDownList runat="server" ID="ddlPageSize" Width="80px" AutoPostBack="true" OnSelectedIndexChanged="ddlPageSize_SelectedIndexChanged">
<x:ListItem Text="5" Value="5" />
<x:ListItem Text="10" Value="10" />
<x:ListItem Text="15" Value="15" Selected="true" />
<x:ListItem Text="30" Value="30" />
<x:ListItem Text="50" Value="50" />
<x:ListItem Text="100" Value="100" />
<x:ListItem Text="200" Value="200" />
</x:DropDownList>
</PageItems>
</x:Grid>
</Items>
</x:Panel>
<x:Window ID="Window1" Title="翻译" Popup="false" EnableIFrame="true" runat="server"
CloseAction="HidePostBack" EnableConfirmOnClose="true" IFrameUrl="about:blank"
EnableMaximize="true" EnableResize="true" Target="Parent" IsModal="True" Width="350px" Height="100px">
</x:Window>
<x:Window ID="Window2" Title="问题列表" Popup="false" EnableIFrame="true" runat="server"
CloseAction="HidePostBack" EnableConfirmOnClose="true" IFrameUrl="about:blank"
EnableMaximize="true" EnableResize="true" Target="Parent" IsModal="false" Width="750px" Height="450px">
</x:Window>
</form>
复制代码
作者:
虫子
时间:
2013-7-4 15:35
后台代码,vb.net的
Partial Class admin_Plugs_Dictionary
Inherits Page
Private recount As Long
Private PublicFunction As New PublicFunctioClass
Private ReadOnly KEY_FOR_DATASOURCE_SESSION As String = "datatable_for_grid_editor_cell"
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
If Not Page.IsPostBack Then
BindGrid()
End If
End Sub
Private Sub BindGrid()
ViewState("UseDataSource1") = True
Dim dt As Data.DataTable
dt = PublicFunction.getSQLTablePageIndex("1=1", Nothing, Grid1.PageIndex + 1, Grid1.PageSize, "Language_library", "id", "asc")
PublicFunction.getcount(Grid1.PageSize, "Language_library", "1=1", Nothing)
Grid1.RecordCount = PublicFunction.recountAll
Grid1.DataSource = dt
Grid1.DataBind()
End Sub
Protected Sub Grid1_PageIndexChange(sender As Object, e As GridPageEventArgs) Handles Grid1.PageIndexChange
Grid1.PageIndex = e.NewPageIndex
BindGrid()
End Sub
Protected Sub ddlPageSize_SelectedIndexChanged(sender As Object, e As EventArgs)
BindGrid()
End Sub
Protected Sub ref_Click(sender As Object, e As EventArgs)
BindGrid()
End Sub
Protected Sub but_saveGrid_Click(sender As Object, e As EventArgs)
BindGrid()
End Sub
End Class
复制代码
作者:
erp8@live.cn
时间:
2013-7-4 16:29
这个跟前台无关,
主要是后台绑定数据刷新后关键字变了
作者:
erp8@live.cn
时间:
2013-7-4 16:30
不能用变量赋值
如果一定要,则用:ViewState
如:ViewState["UpQtys"] = "1";
欢迎光临 FineUI 官方论坛 (https://fineui.com/bbs/)
Powered by Discuz! X3.4