A.Yousefi
جمعه 21 بهمن 1390, 14:45 عصر
سلام
من میخوام وقتی کاربر رو یکی از باتنهایی که تو تمپلیت گرید ویوم قرار دادم کلیک کرد،یه کدی اجرا شه و سطرهای انتخاب شده حذف شه،کدی که نوشتم مشکلی نداره و اینکار رو انجام میده و همون لحظه تغییرات تو گرید نمایش داده میشه،اما زمانی که باتن رو میندازم تو تمپلیت گرید اون کردم کار نمیکنه،البته عمل حذف رو انجام میده ولی بعدش ارور میده.
من خصوصیت CommanName اون باتنی که تو تمپلیت قرار دادم رو مقدار دهی کردم و بعد تو رویداد RowCommand گریدم کدام رو قرار دادم:
<
asp:TemplateField>
<ItemTemplate>
<asp:ButtonID="btnDel"runat="server"Text="Delete"CommandName="Delete"/>
</ItemTemplate>
</asp:TemplateField>
اینم کد سی شارپم:
protectedvoid GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "Delete")
{
foreach (GridViewRow row in GridView1.Rows)
{
CheckBox checkbox = (CheckBox)row.FindControl("CheckBox1");
if (checkbox.Checked)
{
SqlDataSource1.DeleteParameters[
"ID"].DefaultValue = X;
SqlDataSource1.Delete();
}
}
}
}
بعد از اینکه رکوردها رو حذف میکنه ارور میده:
Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
من میخوام وقتی کاربر رو یکی از باتنهایی که تو تمپلیت گرید ویوم قرار دادم کلیک کرد،یه کدی اجرا شه و سطرهای انتخاب شده حذف شه،کدی که نوشتم مشکلی نداره و اینکار رو انجام میده و همون لحظه تغییرات تو گرید نمایش داده میشه،اما زمانی که باتن رو میندازم تو تمپلیت گرید اون کردم کار نمیکنه،البته عمل حذف رو انجام میده ولی بعدش ارور میده.
من خصوصیت CommanName اون باتنی که تو تمپلیت قرار دادم رو مقدار دهی کردم و بعد تو رویداد RowCommand گریدم کدام رو قرار دادم:
<
asp:TemplateField>
<ItemTemplate>
<asp:ButtonID="btnDel"runat="server"Text="Delete"CommandName="Delete"/>
</ItemTemplate>
</asp:TemplateField>
اینم کد سی شارپم:
protectedvoid GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "Delete")
{
foreach (GridViewRow row in GridView1.Rows)
{
CheckBox checkbox = (CheckBox)row.FindControl("CheckBox1");
if (checkbox.Checked)
{
SqlDataSource1.DeleteParameters[
"ID"].DefaultValue = X;
SqlDataSource1.Delete();
}
}
}
}
بعد از اینکه رکوردها رو حذف میکنه ارور میده:
Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index