امتیاز موضوع:
  • 1 رأی - میانگین امتیازات: 4
  • 1
  • 2
  • 3
  • 4
  • 5
دسترسی به کنترل های داخل گریدویو
نویسنده پیام
Ghoghnus آفلاین
مدیر بخش
*****

ارسال‌ها: 1,497
موضوع‌ها: 270
تاریخ عضویت: آذر ۱۳۸۸

تشکرها : 1652
( 3938 تشکر در 1453 ارسال )
ارسال: #1
دسترسی به کنترل های داخل گریدویو
تو یکی از پروژه هایی که داشتم برای یک مدرسه انجام میدادم صفحه ای رو میخواستم که نمرات دانش آموزان رو وارد و یا ویرایش کنم، خوب میدونیم که برای این کار به راحتی با داشتن شماره دانش آموزش میشد همچین کاری رو انجام داد اما برای هر دانش آموز باید این روند تکرار میشد و کاربر رایانه مدرسه لیستی میخواست که نام دانش آموز رو نمایش بده و جلوش تکست باکسی باشه برای تغییر نمره!

چند تا راه وجود داشت اما بهترین راهش رو در این مقاله بررسی میکنیم.

در این مقاله سعی میکنیم به دو هدف زیر برسیم:

1 - دسترسی به کنترل تکست باکس درون تمپلت فیلد گریدویو

2 - دسترسی به مقادیر داخل یک سلول از گریدویو

کاری که قراره انجام بشه :

ویرایش جدول منوها به صورت گروها(تعداد بالا)

اسکریپت جدول منوها :

کد:
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[TBL_Menus](
    [MenuID] [int] IDENTITY(1,1) NOT NULL,
    [MenuTitle] [nvarchar](50) NOT NULL,
    [MenuUrl] [nvarchar](250) NOT NULL,
CONSTRAINT [PK_TBL_Menus] PRIMARY KEY CLUSTERED
(
    [MenuID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO

یک مدل درست کردم و جدول رو وارد کردم، یک گرید ویو و یک دکمه تو صفحه قرار میدم و گریدم رو بایند میکنم :
کد:
<div>
        <asp:GridView runat="server" ID="grdMenus" AutoGenerateColumns="False">
            <Columns>
                <asp:BoundField HeaderText="Menu ID" DataField="MenuID"/>
                <asp:BoundField HeaderText="Title" DataField="MenuTitle"/>
            <asp:TemplateField HeaderText="Menu Url">
                <ItemTemplate>
                    <asp:TextBox runat="server" ID="txt" Text='<%# Eval("MenuUrl") %>'/>
                </ItemTemplate>
            </asp:TemplateField>
            </Columns>
        </asp:GridView>
        <asp:Button runat="server" ID="btnSubmit" Text="Submit Changes" OnClick="btnSubmit_Click"/>
    </div>

و صفحه کد بیهاند به صورت زیر میشه :

کد:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using AccessControlsInsideGridview.Model;

namespace AccessControlsInsideGridview
{
    public partial class Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                BindGrid();
            }
        }

        public void BindGrid()
        {
            var context = new MenuEntities();
            grdMenus.DataSource = (from m in context.TBL_Menus orderby m.MenuID descending select m).ToList();
            grdMenus.DataBind();
        }

        protected void btnSubmit_Click(object sender, EventArgs e)
        {
            var context = new MenuEntities();
            int i = 0;
            foreach (GridViewRow row in grdMenus.Rows)
            {
                int mid = Convert.ToInt32(grdMenus.Rows[i].Cells[0].Text);
                var menu = (from m in context.TBL_Menus where m.MenuID == mid select m).FirstOrDefault();
                if (!string.IsNullOrEmpty(((TextBox)row.FindControl("txt")).Text))
                {
                    if (menu != null)
                    {
                        menu.MenuUrl = ((TextBox)row.FindControl("txt")).Text;
                    }
                }

                i += 1;
            }
            context.SaveChanges();
            BindGrid();

        }
    }
}

همونطور که میبینیم شمارنده ای به نام i تعریف کردیم و مقدار اون رو برابر صفر قرار دادیم.

به تعداد ردیف های گریدویو عملیاتی رو تکرار میکنیم، که در این عملیات مقدار درون سلول اول رو به متغیری به نام mid که همون شماره منو یا MenuID در جدول هست میده بعد ردیف ی از جدول که شماره منو اون برابر مقدار بدست اومده هست رو پیدا میکنیم و در مرجله بعد مقدار تکست باکس رو به جای ستون MenuUrl قرار میدیم و تغییرات رو سیو میکنیم.


موفق باشید

[تصویر:  a.jpg]

باور کنیم
همانگونه که در غیبت مقصریم در ظهور موثریم!
نیستیم؟

زیر شمشیر غمش رقص کنان باید رفت #  کان که شد کُشته ی او نیک سرانجام افتاد



 چشمک - بهینه شده برای ورژن جدید دانلود پروژه برنامه نويسي
۱۰-بهمن-۱۳۹۲, ۱۲:۰۱:۰۷
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : babyy, lord_viper, behzady


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
Question [فوری] شمردن و ذخیره مقدار های کنترل های داینامیک shahryarse 0 2,110 ۰۹-فروردین-۱۳۹۵, ۱۶:۳۷:۱۱
آخرین ارسال: shahryarse
  جلوگیری از جابجا شدن کنترل behzady 1 2,232 ۰۲-اسفند-۱۳۹۱, ۱۶:۳۶:۳۰
آخرین ارسال: behzady
  کنترل PersianMonthCalendar,PersianDateTimePicker esmaeily-hosein 6 7,455 ۲۱-دى-۱۳۹۱, ۰۶:۱۹:۲۹
آخرین ارسال: aeskan
  طرز کار با کنترل linkLabel sayvan 0 2,227 ۳۰-تير-۱۳۹۰, ۱۲:۴۸:۵۹
آخرین ارسال: sayvan
  دسترسی به پیکسل های فرم abasfar 1 2,908 ۲۰-فروردین-۱۳۹۰, ۱۸:۰۴:۰۱
آخرین ارسال: hamedalto
  دسترسی فرم های باز به یکدیگر salehjg 10 11,043 ۲۱-شهریور-۱۳۸۹, ۲۱:۳۳:۴۵
آخرین ارسال: Payman62
  دسترسی به اجزاء فرم از فرم دیگر aydin_key 1 5,089 ۲۱-شهریور-۱۳۸۹, ۱۷:۴۵:۳۶
آخرین ارسال: salehjg
  یک کد برای همه کنترل ها HoseinVig 18 13,440 ۲۹-مهر-۱۳۸۸, ۱۲:۳۷:۱۹
آخرین ارسال: ajlajlajl
  تغییر خاصیت کنترل با دستور تکرار hamidsina 5 5,379 ۱۷-مهر-۱۳۸۸, ۲۰:۱۰:۰۷
آخرین ارسال: ajlajlajl
  پرینت از گریدویو zanburetalayi 1 2,129 ۳۰-مرداد-۱۳۸۸, ۰۹:۵۰:۳۶
آخرین ارسال: ajlajlajl

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS