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

نام تاپیک: آموزش ساخت گرید ویو با قابلیت حذف چند رکورد در #C و VB(شبیه سازی mail box)

  1. #1

    آموزش ساخت گرید ویو با قابلیت حذف چند رکورد در #C و VB(شبیه سازی mail box)

    اینم مطلبی که قول داده بودم.
    اگر شما تا به حال ایمیل خود را باز کرده باشید میبینید که قابلیت انتخاب چند ایمیل به وسیله CheckBox و حذف آن ها را دارید.در این مقاله به بررسی این سناریو به کمک GridView میپردازم.

    همانطور که میدانیم کنترل GridView خاصیت حذف یک رکورد در یک لحظه را دارد و به ما امکان حذف جند رکورد همزمان را با انتخاب چک باکس نمیدهد.
    در این مقاله ما میخواهیم این قابلیت را به GridView اضافه کنیم.

    مثال ما به کمک بانک اصلاعاتی Northwind مایکروسافت اجرا شده

    مراحل انجام کار

    1-یک صفحه وب جدید با پسوند .aspx ایجاد کرده و یک کنترل GridView و یک کنترل

    SqlDataSource را به آن صفحه اضافه کنید.


    2- حال SqlDataSource خود را برای اتصال به جدول مورد نظر خود پیکربندی کنید و همچنین دستوراتی برای حذف کردن و انتخاب کردن داده از آن نیز به SqlDataSource خود اضافه کنید.

    به عنوان مثال من از جدول Employees بانک Northwind به ترتیب زیر استفاده کردم.

    <asp:SqlDataSource ID="SqlDataSource1" Runat="server"
    SelectCommand="SELECT EmployeeID, LastName, City FROM Employees"
    DeleteCommand="DELETE FROM Employees WHERE [EmployeeID] = @EmployeeID"
    ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString %>" >
    <DeleteParameters>
    <asp:Parameter Name="EmployeeID" />
    </DeleteParameters>
    </asp:SqlDataSource>


    3-حال که پیکربندی SqlDataSourceپایان یافت آن رابه GridView برنامه خود Bind کنید.

    4- حال باید یک چک باکس به ازای هر ردیف از داده هایمان اضافه کنیم برای انجام این کار
    مراحل زیر را اجرا کنید

    4 -1:
    یک TemplateField درون <Columns> ایجاد کرده و همچنین ستون های مورد نظر خود برای نمایش نیز به <Columns> اضافه کنید .

    4-2 :
    درون TemplateField یک ItemTemplate درون آن ایجاد کرده و سپس یک چکباکس به آن اضافه کنید

    نمونه کد :

    <asp:TemplateField>
    <ItemTemplate>
    <asp:CheckBox ID="chkRows" runat="server"/>
    </ItemTemplate>
    </asp:TemplateField>

    5- حال یک Button برای حذف دسته جمعی به صفحه اضافه کنید و آن را به btnMultipleRowDelete تفییرنام دهید.

    در نهایت ما در فایل aspx خود این کد را تولید کردیم.

    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="EmployeeID" DataSourceID="SqlDataSource1">

    <Columns>
    <asp:TemplateField>
    <ItemTemplate>
    <asp:CheckBox ID="cbRows" runat="server"/>
    </ItemTemplate>
    </asp:TemplateField>

    <asp:BoundField DataField="EmployeeID" HeaderText="EmployeeID" InsertVisible="False" ReadOnly="True" SortExpression="EmployeeID" />
    <asp:BoundField DataField="LastName" HeaderText="LastName" SortExpression="LastName" />
    <asp:BoundField DataField="City" HeaderText="City" SortExpression="City" />
    </Columns>
    </asp:GridView>

    <asp:SqlDataSource ID="SqlDataSource1" Runat="server"
    SelectCommand="SELECT EmployeeID, LastName, City FROM Employees"
    DeleteCommand="DELETE FROM Employees WHERE [EmployeeID] = @EmployeeID"
    ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString %>" >
    <DeleteParameters>
    <asp:Parameter Name="EmployeeID" />
    </DeleteParameters>
    </asp:SqlDataSource>

    <asp:Button
    ID="btnMultipleRowDelete"
    OnClick="btnMultipleRowDelete_Click"
    runat="server"
    Text="Delete Rows" />

    حال در فایل کد خود که با پسوند cs. برای #C و یا vb. برای VB کد زیر را نوشته


    C#‎


    protected void btnMultipleRowDelete_Click(object sender, EventArgs e)
    {
    // Looping through all the rows in the GridView
    foreach (GridViewRow row in GridView1.Rows)
    {
    CheckBox checkbox = (CheckBox)row.FindControl("cbRows");

    //Check if the checkbox is checked.
    //value in the HtmlInputCheckBox's Value property is set as the //value of the delete command's parameter.
    if (checkbox.Checked)
    {
    // Retreive the Employee ID
    int employeeID = Convert.ToInt32(GridView1.DataKeys[row.RowIndex].Value);
    // Pass the value of the selected Employye ID to the Delete //command.
    SqlDataSource1.DeleteParameters["EmployeeID"].DefaultValue = employeeID.ToString();
    SqlDataSource1.Delete();
    }
    }
    }

    VB.NET

    ProtectedSub btnMultipleRowDelete_Click(ByVal sender AsObject, ByVal e As EventArgs) ' Looping through all the rows in the GridView


    ForEach row As GridViewRow In GridView1.Rows
    Dim checkbox As CheckBox = CType(row.FindControl("cbRows"), CheckBox)
    'Check if the checkbox is checked. 'value in the HtmlInputCheckBox's Value property is set as the //value of the delete command's parameter.




    If checkbox.Checked Then
    ' Retreive the Employee ID
    Dim employeeID AsInteger = Convert.ToInt32(GridView1.DataKeys(row.RowIndex).V alue)
    ' Pass the value of the selected Employye ID to the Delete //command.
    SqlDataSource1.DeleteParameters("EmployeeID").Defa ultValue = employeeID.ToString()
    SqlDataSource1.Delete()
    EndIf
    Next row
    EndSub



    »» مهدی شهابی

  2. #2
    مدیر بخش آواتار salehbagheri
    تاریخ عضویت
    خرداد 1386
    محل زندگی
    In Hearts
    سن
    35
    پست
    2,225

    نقل قول: آموزش ساخت گرید ویو با قابلیت حذف چند رکورد در #C و VB(شبیه سازی mail box)

    برادر عزيز! بسيار عالي است!
    همانطور كه امام صادق (ع) فرمودند: زكات دانش، آموختن آن به ديگران است! اميدوارم همه دوستان دانش خودشون رو به بقيه آموزش بدهند!
    اگر كدهاتون رو هم به صورت يه فايل، براي دانلود بزاريد بدك نيست!
    امیدم به دستان زیبای اوست . آنکه می آید . همان که نامش منجی ست ....

    به راستی اگر غرق نبودیم چرا مارا به منجی ای نیازمند کرده اند؟ ... دنیا دریاست ....

    دلنوشته های من


  3. #3

    نقل قول: آموزش ساخت گرید ویو با قابلیت حذف چند رکورد در #C و VB(شبیه سازی mail box)

    انشالله در آموزش های آتی سعی میکنم اینکار رو انجام بدم

  4. #4
    کاربر جدید
    تاریخ عضویت
    دی 1385
    محل زندگی
    اتاقم
    پست
    27

    نقل قول: آموزش ساخت گرید ویو با قابلیت حذف چند رکورد در #C و VB(شبیه سازی mail box)

    خیلی ممنون بابت این مطلب که من مدت زیادیه درگیرشم.اگه query رو در قسمت advanced نوشته باشیم و enable deleting فعال نباشه چی؟میشه این کارو کرد؟

  5. #5

    نقل قول: آموزش ساخت گرید ویو با قابلیت حذف چند رکورد در #C و VB(شبیه سازی mail box)

    اصلا این نوع طراحی کاری به فعال یا غیر فعال بودن enable deleting نداره
    منظورتون رو از قسمت advanced رو نمیفهمم
    ولی در کل شما باید به ازای هر سطری که میخواید حذف کنید یکبار دستور Delete رو اجرا کنید

  6. #6

    نقل قول: آموزش ساخت گرید ویو با قابلیت حذف چند رکورد در #C و VB(شبیه سازی mail box)

    با سلام
    کدی که نوشتید IDگرید را بر میگرداند ولی عملیات حذف را انجام نمی دهد.
    لطفا فایل این کد را قرار دهید.

  7. #7

    نقل قول: آموزش ساخت گرید ویو با قابلیت حذف چند رکورد در #C و VB(شبیه سازی mail box)

    فکر می کنم کدی که آقای راد گذاشتن خیلی کامل باشه. متدهایی که بکار بردین high class نیست

  8. #8
    کاربر دائمی آواتار peymannaji
    تاریخ عضویت
    مهر 1385
    محل زندگی
    تو یکی از صفرهای گوگل ...
    پست
    881

    نقل قول: آموزش ساخت گرید ویو با قابلیت حذف چند رکورد در #C و VB(شبیه سازی mail box)

    نقل قول نوشته شده توسط iman_ad مشاهده تاپیک
    فکر می کنم کدی که آقای راد گذاشتن خیلی کامل باشه. متدهایی که بکار بردین high class نیست

    بحث اینکه کی کدش با کلاس تر باشه در این مکان مهم نیست بلکه تبادل اطلاعات در هر سطح مطرح است . بفرض مثال اگر هم جایی بتواند بهینه تر نوشته شود اون وظیفه دیگر دوستان هست که کمک کنند ... به نظر من هر فردی با هر سطح اطلاعاتی اگر بتواند حتی به اندازه نوک سوزن یک فرد دیگر رو به تامل در مورد موضوع مطرح شده وادار کنه این خودش یک دنیا ارزش داره دیگه چه برسه به اینکه بخواهد چیزی رو آموزش بده ...

    و از دوستمون که این مطلب رو آموزش دادن تشکر میکنم .

  9. #9
    کاربر دائمی آواتار milade
    تاریخ عضویت
    اسفند 1386
    محل زندگی
    شیراز
    پست
    2,189

    نقل قول: آموزش ساخت گرید ویو با قابلیت حذف چند رکورد در #C و VB(شبیه سازی mail box)


  10. #10
    کاربر دائمی آواتار YourWorldToday
    تاریخ عضویت
    اسفند 1387
    محل زندگی
    مشهد - قم - قزوین
    پست
    178

    نقل قول: آموزش ساخت گرید ویو با قابلیت حذف چند رکورد در #C و VB(شبیه سازی mail box)

    با سلام
    سوال من این هستش که چطور می تونیم checkbox های رو که مقدارش false هستش رو به true تغییر بدیم(یا بلعکس) و بعد تغییرات رو داخل gridview نمایش بدیم
    با تشکر

  11. #11

    نقل قول: آموزش ساخت گرید ویو با قابلیت حذف چند رکورد در #C و VB(شبیه سازی mail box)

    سلام

    ميخوام بدونم چطور ميشه check box رو بذارم توي هر ركورد grid view .با سي شارپ رو ميخوام بدونم.

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

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