YourWorldToday
شنبه 25 مهر 1388, 12:48 عصر
با سلام خدمت دوستان گرامی
من در برنامه ام یه گرید ویو دارم که داخلش یه ImageButton هستش.
<asp:GridView ID="GvClerk" runat="server" AutoGenerateColumns="False" DataKeyNames="OrderID"
DataSourceID="SdsClerkOrder" PagerStyle-CssClass="pag" AlternatingRowStyle-CssClass="alt"
AllowPaging="True" CssClass="SettingGridView" Width="100%" OnRowCommand="GvClerk_RowCommand">
<Columns>
<asp:BoundField DataField="OrderID" HeaderText="OrderID" InsertVisible="False" ReadOnly="True"
SortExpression="OrderID">
<HeaderStyle CssClass="NotShow" />
<ItemStyle CssClass="NotShow" />
</asp:BoundField>
<asp:BoundField DataField="ClerkFullName" HeaderText="نام و نام خانوادگی" ReadOnly="True"
SortExpression="ClerkFullName" />
<asp:BoundField DataField="MonthName" HeaderText="ماه" SortExpression="MonthName" />
<asp:BoundField DataField="Sport" HeaderText="ورزش" SortExpression="Sport" />
<asp:BoundField DataField="OrderNumber" HeaderText="تعداد درخواستی" SortExpression="OrderNumber" />
<asp:TemplateField>
<ItemTemplate>
<asp:ImageButton ToolTip="حذف" OnClientClick="return confirm ('آیا واقعا می خواهید حذف شود ؟')"
CommandName="Delete" CommandArgument='<%# Container.DataItemIndex %>' ID="Delete"
ImageUrl="Image/delete.png" runat="server" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
<PagerStyle CssClass="pag" />
<AlternatingRowStyle CssClass="alt" />
</asp:GridView>
در دویداد RowCommand گرید ویو، از کد زیر برای حذف اطلاعات استفاده کردم
SdsClerkOrder.DeleteParameters["OrderID"].DefaultValue = GvClerk.Rows[Convert.ToInt32(e.CommandArgument)].Cells[0].Text;
SdsClerkOrder.Delete();
مشکل که در حذف کردن پیش آمده این است که اطلاعات صفحه اول گرید ویو پاک میشه اما به محض اینکه وارد صفحه دوم بشیم و بخوایم رکوردی رو حذف کنیم برنامه به خطا می خوره.
خطا هم به این صورت هستش.
Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
ممنون میشم راهنمایی بفرمایید
با تشکر
من در برنامه ام یه گرید ویو دارم که داخلش یه ImageButton هستش.
<asp:GridView ID="GvClerk" runat="server" AutoGenerateColumns="False" DataKeyNames="OrderID"
DataSourceID="SdsClerkOrder" PagerStyle-CssClass="pag" AlternatingRowStyle-CssClass="alt"
AllowPaging="True" CssClass="SettingGridView" Width="100%" OnRowCommand="GvClerk_RowCommand">
<Columns>
<asp:BoundField DataField="OrderID" HeaderText="OrderID" InsertVisible="False" ReadOnly="True"
SortExpression="OrderID">
<HeaderStyle CssClass="NotShow" />
<ItemStyle CssClass="NotShow" />
</asp:BoundField>
<asp:BoundField DataField="ClerkFullName" HeaderText="نام و نام خانوادگی" ReadOnly="True"
SortExpression="ClerkFullName" />
<asp:BoundField DataField="MonthName" HeaderText="ماه" SortExpression="MonthName" />
<asp:BoundField DataField="Sport" HeaderText="ورزش" SortExpression="Sport" />
<asp:BoundField DataField="OrderNumber" HeaderText="تعداد درخواستی" SortExpression="OrderNumber" />
<asp:TemplateField>
<ItemTemplate>
<asp:ImageButton ToolTip="حذف" OnClientClick="return confirm ('آیا واقعا می خواهید حذف شود ؟')"
CommandName="Delete" CommandArgument='<%# Container.DataItemIndex %>' ID="Delete"
ImageUrl="Image/delete.png" runat="server" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
<PagerStyle CssClass="pag" />
<AlternatingRowStyle CssClass="alt" />
</asp:GridView>
در دویداد RowCommand گرید ویو، از کد زیر برای حذف اطلاعات استفاده کردم
SdsClerkOrder.DeleteParameters["OrderID"].DefaultValue = GvClerk.Rows[Convert.ToInt32(e.CommandArgument)].Cells[0].Text;
SdsClerkOrder.Delete();
مشکل که در حذف کردن پیش آمده این است که اطلاعات صفحه اول گرید ویو پاک میشه اما به محض اینکه وارد صفحه دوم بشیم و بخوایم رکوردی رو حذف کنیم برنامه به خطا می خوره.
خطا هم به این صورت هستش.
Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
ممنون میشم راهنمایی بفرمایید
با تشکر