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

نام تاپیک: دسترسی به تکست باکس توی هر سطر دیتاگرید و مقدار دهی دیتاتیبل

  1. #1
    کاربر دائمی آواتار bahar_engineer
    تاریخ عضویت
    دی 1387
    محل زندگی
    تهران
    پست
    657

    دسترسی به تکست باکس توی هر سطر دیتاگرید و مقدار دهی دیتاتیبل

    سلام

    من برای سبد خرید یه دیتاگرید دارم که می خوام یه تکست باکس توی ردیف های اون بذارم و کاربر برای هر ردیف از محصولات که تمایل داشت تعداد رو در تکست باکس تعیین کنه

    سبد خرید من توی یه یوزرکنترله که اونم توی مسترپیج هست در صورتی که محصولات توی یه وب پیج هستن

    من یه دکمه دارم برای اضافه به سبد خرید که توی صفحه aspx هست و با فشردن اون ، دیتاگرید رو توی اون یوزرکنترل مقداردهی می کنم اما وقتی می خوام بگم که تعداد رو بدست بیاره خطای object not refrence to an instance... رو می ده و دلیلش اینه که اون تکست باکسها خالی هستن

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


    foreach (DataRow objDR in objDT.Rows)
    {
    TextBox txt = (TextBox)dg.FindControl("TextBox1");
    txt.Text = "100";
    }


    اینو توی لود یوزرکنترل گذاشتم و مقدار ساده 100 هم دادم که از چیز دیگه ای مشکل نداشته باشه

    اما همون خطا رو می ده.

    تو رویداد کلیک اون دکمه توی صفحه aspx هم اینطوری کد دادم:

    DataGrid mydg = (DataGrid)cart.FindControl("dg");
    TextBox txtQuantity = (TextBox)mydg.FindControl("TextBox1");

    //product = productName;
    DataTable objDT = (DataTable)Session["Cart"];

    foreach (DataRow objDR in objDT.Rows)
    {
    if (objDR["product"] == productName)
    {
    objDR["Quantity"] = int.Parse(objDR["Quantity"].ToString()) + int.Parse(txtQuantity.Text);
    blnMatch = true;
    }
    }
    if (blnMatch == false)
    {
    objDR = objDT.NewRow();
    objDR["Quantity"] =1 ;
    txtQuantity.Text = objDR["Quantity"].ToString();
    objDR["Product"] = productName;
    objDR["Cost"] = Decimal.Parse(productcost);
    objDT.Rows.Add(objDR);
    }


    همه جا از این txtQuantity خطا می گیره

    چطور باید بهش مقدار بدم؟ اصلا چرا باید مقدار اولیه بدم؟ خوب اول کار تکست باکس خالیه

    بعدا یوزر پرش می کنه..

    در ضمن من برای اینکه Total Amount که یه لیبل هست که اونم توی یوزرکنترله بتونه با تغییر در تکست باکس تغییر بکنه تو رویداد textchange تکست باکس هم کد نوشتم به این صورت


    foreach (DataRow objDR in objDT.Rows)
    {
    TextBox txt = (TextBox)dg.FindControl("TextBox1");
    objDR["Quantity"] = txt.Text;

    }


    اینم همون خطا رو داره ... آیا این روش برای update کردن دیتاگرید درسته؟ از این خطا که بگذریم؟ البته یه تابع هست که total amount رو بدست می آره اونم باید فراخوانی کنم.

  2. #2
    کاربر دائمی آواتار bahar_engineer
    تاریخ عضویت
    دی 1387
    محل زندگی
    تهران
    پست
    657

    نقل قول: دسترسی به تکست باکس توی هر سطر دیتاگرید و مقدار دهی دیتاتیبل

    کسی نظری نداشت ؟ من با این خطای بی مزه چکار کنم؟

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

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