نمایش نتایج 1 تا 7 از 7

نام تاپیک: پیداکردن شماره سطر دیتاگرید برای حذف

  1. #1

    Exclamation پیداکردن شماره سطر دیتاگرید برای حذف

    ببخشید از اینکه به نظر شما سوالم تکراریه.
    من برای حذف یک سطر از دیتاگرید احتیاج به شماره آن سطر دارم که برای پیدا کردن آن کد زیر را نوشتم:

    string UserKey = dg.DataKeys[e.Item.ItemIndex].ToString();

    اما این پیغام رو میده :
    Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: index
    در ضمن من datakeyfield رو هم set کردم ولی باز...
    راه دیگه اینکه از این دستور استفاده کنم ولی این روش هم جواب نمیده(با یه شرایط خاص جواب میده)

    DataBoundLiteralControl DBLC = (DataBoundLiteralControl) e.Item.FindControl("ID").Controls[0];


    حالا میخواهم یه بنده خدایی لطف کنه و برای من راه اصولیش رو توضیح بده که قدم به قدم چیکار باید بکنم.شاید من نکته ای رو اشتباه کردم.
    ممنون

  2. #2
    Private Sub DataGrid1_DeleteCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs ) Handles DataGrid1.DeleteCommand
    fill("table")
    com.CommandText = "delete from table where code='" + Session("code") + "' and post='" + e.Item.Cells(17).Text + "'"
    com.Connection = cn
    cn.Open()
    com.ExecuteNonQuery()
    cn.Close()
    fillall("table")
    bind(DataGrid1, "table")
    End Sub

    or

    Private Sub dguser_DeleteCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs ) Handles dguser.DeleteCommand
    Dim a As String = e.Item.Cells(2).Text
    SqlDataAdapter1.Fill(DataSet11, "table")
    Try
    DataSet11.userpass.FindByusername(a).Delete()
    SqlDataAdapter1.Update(DataSet11)
    Catch
    End Try
    dguser.DataBind()
    End Sub

    or

    Private Sub dgpub_DeleteCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs ) Handles dgpub.DeleteCommand
    SqlDataAdapter1.Fill(DataSet11, "table")
    DataSet11.tab.Rows(e.Item.ItemIndex).Delete()
    SqlDataAdapter1.Update(DataSet11)
    dgpub.DataBind()
    End Sub
    وای سلام یادم رفت
    با سلام
    راه اول برای کار با دیتا ست دست ساز و Session
    راه دوم استفاده از عناصر گرافیکال
    که در این راه به علت اینکه ممکن است با به روز رسانی عمدی صفحه با عث حذف سطری دیگر از صفحه شویم از find استفاده کردیم و چون با پاک کردن سطر و رفرش مجدد امکان خطا زیاد است از Try استفاده شده است
    راه سوم استفاده از عناصر گرافیکال با این مشکل که با به روز رسانی مجدد و عمدی نه Postback سطر بعدی نیز حذف خواهد شد
    هر کدوم به دردت میخوره استفاده کن

  3. #3
    فکر میکنم شما دقیقاً متوجه سوال بنده نشدید پس دوباره خدمتتون عرض میکنم که من فقط توی اون شماره سطر مشکل دارم.یعنی
    ????=delete .... where id
    + لطفاً کد هاتون رو داخل تگ [/code][code]بنویسید تا بهم نریزه و ما بیشتر استفاده کنیم.

  4. #4
    با سلام
    من سه روش حذف آوردم
    ببین کجاش بدردت میخوره استفاده کن دیگه
    آخه حذف بدون بدست آوردن سطر که نمیشه ؟

  5. #5
    امیدوارم اگر کس دیگه ای دقیقاً متوجه منظور من شده به سوالم جواب بده.

  6. #6
    دوست عزیز من خودم هنگام کار با دیتاگرید برای پاک کردن یا آپدیت کردن هیچوقت شماره سطر رو برنمیگردونم میدونی چرا؟
    چون با فیلتر کردن گریدت یا به صفحه بعدی دیتاگریدت میری شماره سری که برمیگردونه شماره سطر اون سطری نیست که تو دیتابیست هست
    بهتره که یه DatakeyFiled در دیتا گریدت تعیین کنی و اونو برگردونی و با اون در دستور DELETET یه WHERE تعیین کنی و با اون سطر مورد نظرتو پیدا کنی

    مثل زیر که من در یکی از برنامه هام عمل کردم


    Dim RowsSelected As String
    Dim dgi As DataGridItem

    RowsSelected = DataGrid1.DataKeys(dgi.ItemIndex).ToString()
    cmd.CommandText = "DELETE FROM Names WHERE FullName = '" & RowsSelected & "'"
    cmd.ExecuteNonQuery()



    یا اینکه یه سلول دیگه از اون سر رو برگردونی و باز در شرط دستور DELETE استفاده کنی..
    من خودم تا بحال مشکلی نداشتم با این روشها
    آخرین ویرایش به وسیله white fox : پنج شنبه 01 دی 1384 در 02:55 صبح

  7. #7
    برای دسترسی به ID جدول بانک که کلید باشد در تابع Delete از کد زیر استفاده نمایید:
    <
    ID=e.CommandArgument.ToString()

    توجه داشته باشید که در کد HTML آبجکتی که تابع شما را (مثلا برای حذف) فراخوانی میکند کد زیر را نوشته باشید :
    OnCommand="Delete"

    که نام تابع حذف را مشخص میکند و بعد از یک فاصله کد زیر را نوشته باشید:
    CommandArgument='<%#DataBinder.Eval(Container.Data  Item,"ID") %>'

    که ID را بعنوان پارامتر میفرستد.
    موفق باشید.

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •