حذف ركوردهاي هاي تيك خورده در Gridview :
براي اينكار ابتدا يك صفحه ي webform.aspx ايجاد كنيد.
در صفحه يك گريدويو و يك sqlDataSource و يك دكمه قرار دهيد.
sqlDataSource رو به بانك موردنظرتون ربط داده و خاصيت DataSourceID مربوط بهگريدويو رو برابرSqlDataSource1 قرار بديد.
به گريدويو خود يك ستون اضافه كنيد به طريقه زير:
به قسمت سورس رفته، و در بين تگ هاي gridview خود تگ <Columns> </Columns>قرار دهيد سپس يك TemplateField اضافه كنيد. در نهايت كدي مشابه زير ايجاد كنيد:
کد:<asp:GridView ID="GridView1" runat="server" DataKeyNames="NewsId" DataSourceID="Sqldatasource1"> <Columns> <asp:TemplateField> <HeaderTemplate> <asp:CheckBox ID="CheckAll" onclick="return check_uncheck (this );" runat="server" /> </HeaderTemplate> <ItemTemplate> <asp:Label ID="nID" Visible="false" Text='<%# DataBinder.Eval (Container.DataItem, "NewsId") %>' runat="server" /> <asp:CheckBox ID="deleteRec" onclick="return check_uncheck (this );" runat="server" /> </ItemTemplate> </asp:TemplateField> </Columns></asp:GridView>در اينجاDataKeyNames برابر فيلد كليد در جدول موردنظر قرار مي دهيم.
در <HeaderTemplate> يك چكباكس گذاشته شده جهت انتخاب تمامي سطرها مي باشد .
در رويداد onclick يك تابع جاواسكريپت فراخواني ميكنيم كه توسط اين تابع تمامي سطرها انتخاب/لغوانتخاب مي شوند.
در <ItemTemplate>چك باكسي كه قرار داديم براي هر سطر مي باشد.
كدهاي جاواسكريپت زير را در تگ bodyقرار دهيد:
در رويداد onclick دكمه دستورات زير روبنويسيد:کد:<script type="text/javascript"> function check_uncheck (Val) { var ValChecked = Val.checked; var ValId =Val.id; var frm = document.forms[0]; // Loop through all elements for (i=0; i<frm.length; i++) { // Look for Header Template's Checkbox if (this!=null) { if (ValId.indexOf ('CheckAll') != -1) { // Check if main checkbox is checked, then select or deselect datagrid checkboxes if(ValChecked) frm.elements[i].checked = true; else frm.elements[i].checked = false; } else if (ValId.indexOf ('deleteRec') != -1) { // Check if any of the checkboxes are not checked, and then uncheck top select all checkbox if(frm.elements[i].checked == false) frm.elements[1].checked = false; } }// if }// for }// function function confirmMsg (frm) { // loop through all elements for (i=0; i<frm.length; i++) { // Look for our checkboxes only if (frm.elements[i].name.indexOf("deleteRec") !=-1) { // If any are checked then confirm alert, otherwise nothing happens if(frm.elements[i].checked) return confirm ('Are you sure you want to delete your selection(s)?') } } }کد:</script>
کد:Dim gvIDs As String = "" Dim chkBox As Boolean = False For Each gv As GridViewRow In GridView1.Rows Dim deleteChkBxItem As CheckBox = CType(gv.FindControl("deleteRec"), CheckBox) If deleteChkBxItem.Checked Then chkBox = True gvIDs += CType(gv.FindControl("nID"), Label).Text.ToString + "," End If Next Dim cn As SqlConnection = New SqlConnection(Sqldatasource1.ConnectionString) If chkBox Then Try Dim deleteSQL As String = "DELETE from news WHERE newsid IN (" + gvIDs.Substring(0, gvIDs.LastIndexOf(",")) + ")" Dim cmd As SqlCommand = New SqlCommand(deleteSQL, cn) cn.Open() cmd.ExecuteNonQuery() GridView1.DataBind() Catch err As SqlException Response.Write(err.Message.ToString) Finally cn.Close() End Tryکد:End If
در ضمن Imports System.Data.SqlClient رو در ابتداي صفحه ي code-behind قرار بديد.
موفق باشيد.
علاقه مندی ها (بوک مارک ها)