PDA

View Full Version : سوال: کمک در نوشتن کدهای Select , Delete , Edit برای یک GridView



najafzade
پنج شنبه 11 مهر 1387, 10:42 صبح
با سلام به اساتید برنامه نویس
یک مشکل در نوشتن کد برای GridView داشتم که اگه لطف بفرمائید و کمک کنین ممنون می شم.
من Source رو ضمیمه کردم و پایگاه دادش هم همون Northwind هستش که تو SQL Server وجود داره.

قسمت شماره صفحه رو خودم درست کردم و با کلیک بر روی شماره صفحه کار می کنه و به صفحات بعدی میره.

ولی برای بخش DELETE و SELECT و UPDATE نتونستم کاری بکنم.

اگه لطفی بکنین و برای همین Source که من گذاشتم این کدها رو بنویسین و اینجا بزارین ممنون میشم.

با تشکر و امتنان فراوان:خجالت:

r_mehrizi
پنج شنبه 11 مهر 1387, 11:03 صبح
من این جا یک نمونه کد براتون گذاشتم می تونید از اون استفاده کنید


<asp:GridView ID="GridView1" runat="server" DataKeyNames="j_id" SkinID="Elham" AllowPaging="true" PageSize="5" ShowFooter="True" Width="641px" >
<Columns>
<asp:TemplateField HeaderText="شماره&lt;br&gt;ردیف">
<ItemTemplate>
<asp:Literal ID="litRowNumberNormal" runat="server"></asp:Literal>
</ItemTemplate>
<ItemStyle HorizontalAlign="Center" />
</asp:TemplateField>
<asp:TemplateField HeaderText="تاریخ">
<ItemTemplate>
<%#Eval("j_date")%>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="نام محل کار">
<ItemTemplate>
<%#Eval("j_namemahalekar")%>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="سمت">
<ItemTemplate>
<%#Eval("j_semat")%>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="علت خاتمه کار">
<ItemTemplate>
<%#Eval("j_dalil")%>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="نشانی محل کار">
<ItemTemplate>
<%#Eval("j_address")%>
</ItemTemplate>
</asp:TemplateField>

<asp:TemplateField HeaderText="حذف">
<FooterTemplate>
<asp:Button CommandName="Delete" Text="حذف" ID="btnRemove" runat="server" CssClass="DeleteButton" />
</FooterTemplate>
<ItemTemplate>
<asp:CheckBox ID="ChkRemove" runat="server"></asp:CheckBox>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>





#Region "gridview"
Protected Sub GridView1_RowDeleting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles GridView1.RowDeleting
Dim chkRemove As WebControls.CheckBox
Dim strIDs As String = ""
Dim boolCheck As Boolean = False
' Dim cls As New omanaBLL
Dim dt As New Oghaf.tbl_jobDataTable
dt = ViewState("tmpdt")
Dim a As Integer = dt.Rows.Count
For Each gvRow As GridViewRow In GridView1.Rows
chkRemove = DirectCast(gvRow.FindControl("ChkRemove"), WebControls.CheckBox)
If chkRemove.Checked Then
boolCheck = True
If gvRow.RowIndex = a - 1 Then
dt.Rows(0).Delete()
Else
dt.Rows(gvRow.RowIndex).Delete()
End If
End If
Next
If boolCheck = True Then
ViewState("tmpdt") = dt
Bind_Grid()
End If
End Sub


Protected Sub GridView1_RowCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowCreated
If e.Row.RowType = DataControlRowType.DataRow Then
e.Row.Cells(0).Text = ((e.Row.RowIndex + 1) + (GridView1.PageSize * GridView1.PageIndex)).ToString
End If
End Sub
Protected Sub GridView1_PageIndexChanging(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewPageEventArgs) Handles GridView1.PageIndexChanging
Me.GridView1.PageIndex = e.NewPageIndex
Bind_Grid()
End Sub
#End Region




Private Sub Bind_Grid()
Dim dt As New Oghaf.tbl_jobDataTable
dt = ViewState("tmpdt")
Me.GridView1.DataSource = dt.DefaultView
Me.GridView1.DataBind()
End Sub

najafzade
پنج شنبه 11 مهر 1387, 11:16 صبح
من این جا یک نمونه کد براتون گذاشتم می تونید از اون استفاده کنید





سلام
ممنون از کدی که گذاشتین. ولی من که عرض کردم اون فایلی که من گذاشتم کلا فرق می کنه. از تمپلیتها استفاده کردم و به همین خاطر نتونستم کدهای DELETE و SELECT و UPDATE رو بنویسم.

اگه میشه یک لطفی بکنین و روی اون نمونه ای من گذاشتم کد بنویسین.

با تشکر:خجالت:

najafzade
پنج شنبه 11 مهر 1387, 11:45 صبح
سلام به اساتید
خداوکیل کارم بدجوری گیر کده
یه کمکی بکنین لطفا:گریه:

kezack
جمعه 12 مهر 1387, 10:09 صبح
دوست خوب delete انجام نميشه دليلش فكر كنم بخاطر ارتباطي كه بين جدول ها وجود داره و واسه edit هم بجاي label در grid از TextBox استفاده كن

baharkabiri
جمعه 12 مهر 1387, 11:44 صبح
من یه سوالی برام پیش اومده.مگه توی خود griedview گزینه enable deleting نداره؟
چطوری میشه اون رو فعال کرد؟مثل enable sorting یا enable selection نیست؟؟!!!
من هم برای حذف و ویرایش سطر ها مشکل دارم.ممنون میشم راهنمایی کنید.

kezack
جمعه 12 مهر 1387, 11:58 صبح
دوست خوب فكر كنم به اندازه كافي در اين باره مطلب تو سايت هست يك search بزن تا... :لبخند:
خوب اين خاصيتي كه فرمودين داره ولي اكه بخواين به طور دستي اينكار رو انجام دهيد نميشه از اون خاصيت استفاده كرد.
براي حذف يا ويرايش به صورت دستي كافي در قسمت rowcommand مربوط به gird كد بنويسيد مثلا


protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
SqlConnection con = new SqlConnection(System.Configuration.ConfigurationMa nager.AppSettings["ConnectionString"]);
if (e.CommandName == "Delete")
{
SqlCommand cnd = new SqlCommand();
cnd.Connection = con;
cnd.CommandText = "Delete From [Order] Where [Idbasket]='" + e.CommandArgument.ToString() + "'";
con.Open();
SqlDataReader dn = cnd.ExecuteReader();
if (dn.Read())
{
}
con.Close();
}
}

موفق باشيد

baharkabiri
جمعه 12 مهر 1387, 13:27 عصر
مرسی.اما من متوجه نشدم این کد ها رو دقیقآ کجا باید بزارم؟؟!!
اگه نخوام کد بنویسم چطوری باید delete رو در griedview فعال کنم؟
الن من گزینه enable deleting رو تویgriedview نمیبینم!!!:گیج:
خب چیه؟کار نکردم دیگه.جواب بدین لطفآ:قلب:

kezack
جمعه 12 مهر 1387, 13:43 عصر
grid رو به يك datasource بايند كن بعدش ميتوني اونو فعال كني

baharkabiri
جمعه 12 مهر 1387, 15:25 عصر
این کارو کردم ولی گزینه ای رو نمیبینم!
فقط paging sorting selection رو داره!

kezack
جمعه 12 مهر 1387, 17:03 عصر
وقتي كه داري gird رو به Datasource بايند ميكني همون اول قسمت advance رو انتخاب كن و تيك مربوط به update, insert, delete,select رو بزن

Saber_Fatholahi
شنبه 13 مهر 1387, 13:11 عصر
دوست عزیز موقع ست کردن دیتا سورس باید تیکش رو بزاری بعد توی محیط برنامه روی گرید کلیک کن و گزینه هات رو انتخاب کن.برای فعال کردن دکمش زیر دکمه orderby است.


وقتي كه داري gird رو به Datasource بايند ميكني همون اول قسمت advance رو انتخاب كن و تيك مربوط به update, insert, delete,select رو بزن

البته لازم بذکر هست که برای فعال شدن اون چک باکس ها حتما باید فیلد کلید جدول انتخاب شده باشه تا شما بتونین چک باکس update, insert, delete,select فعال شده ببینین

amoo_sexy
دوشنبه 15 مهر 1387, 10:10 صبح
این درسته:قهقهه:

vahidbolbol
چهارشنبه 06 فروردین 1393, 02:01 صبح
با سلام خدمت همه
من یک منو اخبار درست کردم و یا گریدویو تیتر هر خبریو گذاشتم
مشکل اینجاست که رو هر تیتری کلیک میکنم کل خبرهارو نشون میده من میخوام فقط خوداون خبری که کلیک کرمو نشون بده تو یک صفحه جدید
راستی برای نمایش کل خبراز گریدویو استفاده کنم یا نه؟