a_123123123123
شنبه 18 تیر 1390, 13:22 عصر
سلام دوستان
من یه گرایدویو دارم که به یه جدول بانکم مقید شده
تو این گرایدویو من یک ستون ردیف دارم که شماره هارو از 1 ، یکی زیاد میکنه
تو این گراید ویو یه دکمه autogeneraldeletebutton استفاده کردم که کاربر رو هر دکمه حذف کلیک کنه سطی که اون دکمه دراون قرار داره حذف میشه
حالا ه مشکل برخوردم
چون اگه بخوام برای حذف از این روش استفاده کنم باید ستون ردیف رو به ستون id تو انکم مقید کنم که شماره ستون رو از اون طریق بخونه
و چون از طرفی من میخوام شماره ردیف من یکیک زیاد بشه نمیدونم باید چیکار کنم
این دستور حذف هستش که من استفاده میکنم
Protected Sub grid_user_RowDeleting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles grid_user.RowDeleting
Dim rowEdit As GridViewRow = grid_user.Rows(e.RowIndex)
Dim com As New SqlCommand
Dim int_number As String = CType(rowEdit.FindControl("lit_number"), Literal).Text
Dim str_aks As String = String.Empty
con.Open()
com.Connection = con
com.CommandText = "select * from tbl_user where id ='" & int_number & "'"
Dim reader As SqlDataReader = com.ExecuteReader
If reader.HasRows = True Then
reader.Read()
str_aks = (reader.GetString(11))
End If
con.Close()
com.Connection = con
com.CommandText = "delete from tbl_user where id= '" & int_number & "'"
Try
con.Open()
com.ExecuteNonQuery()
System.IO.File.Delete(Server.MapPath(str_aks))
Catch ex As SqlException
Response.Write(ex.Message.ToString())
Finally
If con.State <> ConnectionState.Closed Then con.Close()
If (Not com Is Nothing) Then com.Dispose()
grid_load()
End Try
End Sub
و این دستور برای ردیف
Protected Sub grid_user_PageIndexChanging(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewPageEventArgs) Handles grid_user.PageIndexChanging
Dim dta As New SqlDataAdapter("select * from tbl_user ", con)
Dim ds As New DataSet
ds.Clear()
dta.Fill(ds, "tbl_user")
grid_user.PageIndex = e.NewPageIndex
grid_user.DataSource = ds
grid_user.DataBind()
ViewState("PageIndex") = e.NewPageIndex.ToString()
con.Close()
End Sub
Protected Sub grid_user_RowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs) Handles grid_user.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
'row index
'e.Row.Cells[1] همان ستون ردیف است
If ViewState("PageIndex") Is Nothing Then
e.Row.Cells(0).Text = (e.Row.RowIndex + 1).ToString()
Else
Dim page As Integer = Convert.ToInt32(ViewState("PageIndex"))
e.Row.Cells(0).Text = (10 * (page) + e.Row.RowIndex + 1).ToString()
End If
End If
حالا لطفا بگید اشکال کارکجاست و من چه طوری باید حلش کنم؟
من یه گرایدویو دارم که به یه جدول بانکم مقید شده
تو این گرایدویو من یک ستون ردیف دارم که شماره هارو از 1 ، یکی زیاد میکنه
تو این گراید ویو یه دکمه autogeneraldeletebutton استفاده کردم که کاربر رو هر دکمه حذف کلیک کنه سطی که اون دکمه دراون قرار داره حذف میشه
حالا ه مشکل برخوردم
چون اگه بخوام برای حذف از این روش استفاده کنم باید ستون ردیف رو به ستون id تو انکم مقید کنم که شماره ستون رو از اون طریق بخونه
و چون از طرفی من میخوام شماره ردیف من یکیک زیاد بشه نمیدونم باید چیکار کنم
این دستور حذف هستش که من استفاده میکنم
Protected Sub grid_user_RowDeleting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles grid_user.RowDeleting
Dim rowEdit As GridViewRow = grid_user.Rows(e.RowIndex)
Dim com As New SqlCommand
Dim int_number As String = CType(rowEdit.FindControl("lit_number"), Literal).Text
Dim str_aks As String = String.Empty
con.Open()
com.Connection = con
com.CommandText = "select * from tbl_user where id ='" & int_number & "'"
Dim reader As SqlDataReader = com.ExecuteReader
If reader.HasRows = True Then
reader.Read()
str_aks = (reader.GetString(11))
End If
con.Close()
com.Connection = con
com.CommandText = "delete from tbl_user where id= '" & int_number & "'"
Try
con.Open()
com.ExecuteNonQuery()
System.IO.File.Delete(Server.MapPath(str_aks))
Catch ex As SqlException
Response.Write(ex.Message.ToString())
Finally
If con.State <> ConnectionState.Closed Then con.Close()
If (Not com Is Nothing) Then com.Dispose()
grid_load()
End Try
End Sub
و این دستور برای ردیف
Protected Sub grid_user_PageIndexChanging(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewPageEventArgs) Handles grid_user.PageIndexChanging
Dim dta As New SqlDataAdapter("select * from tbl_user ", con)
Dim ds As New DataSet
ds.Clear()
dta.Fill(ds, "tbl_user")
grid_user.PageIndex = e.NewPageIndex
grid_user.DataSource = ds
grid_user.DataBind()
ViewState("PageIndex") = e.NewPageIndex.ToString()
con.Close()
End Sub
Protected Sub grid_user_RowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs) Handles grid_user.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
'row index
'e.Row.Cells[1] همان ستون ردیف است
If ViewState("PageIndex") Is Nothing Then
e.Row.Cells(0).Text = (e.Row.RowIndex + 1).ToString()
Else
Dim page As Integer = Convert.ToInt32(ViewState("PageIndex"))
e.Row.Cells(0).Text = (10 * (page) + e.Row.RowIndex + 1).ToString()
End If
End If
حالا لطفا بگید اشکال کارکجاست و من چه طوری باید حلش کنم؟