PDA

View Full Version : سوال: ضرب دو فیلد دیتاگرید



hosna66
چهارشنبه 04 شهریور 1388, 19:19 عصر
سلام دوستان.خسته باشید
ببخشید من توی" گریدویو "و در قسمت templatefield سه تا لیبل دارم. یکی برای تعداد و یکی برای قیمت واحد که اطلاعاتشون رو از پایگاه اکسس میگیرن. سومین لیبل هم قیمت کل هست. یه دکمه برای محاسبه مبلغ در صفحه دارم که میخوام با زدنش برای همه سطرها تعداد در قیمت واحد ضرب شه و نتیجه در قیمت کل ذخیره شه. باید چه دستوراتی استفاده کنم ؟لطفا با سی شارپ بگین
ممنون میشم اگه کمکم کنید. از هر راهی میرم جواب نمیده:متفکر:

amin1000
پنج شنبه 05 شهریور 1388, 13:05 عصر
سلام
شما میتونید از خاصیت current cell دیتا گرید استفاده کنید .به این صورت که مقدار و قیمت را از بانک فراخوانی کنید بعد هر کدام را در یک متغیر قرار دهید سپس با هم ضرب کنید

z_bluestar
پنج شنبه 05 شهریور 1388, 13:42 عصر
خوب چند تا راه براي اين كار وجود داره كه به نظر من ساده ترين راه اينه كه
براي بدست آوردن جمع كالا در هر سطر از DataBinding استفاده كنيد
كه وقتي Grid نمايش داده مي شود جمع ها هم نمايش داده شود .
خاصيت text رو Bind كنيد به يك Method كه جمع را محاسبه ميكند .و تعداد و قيمت واحد را مي توانيد به صورت پارامتر به اين متد ارسال كنيد

<ItemTemplate>
<asp:Label ID="label1" runat="server"
Text='<%# Sum(DataBinder.Eval(Container.DataItem, "Toatal","Count").ToString()) %>'>
</asp:Label>
</ItemTemplate>

بعدش هم براي button جمع كل بريد در DataBase و از اون جا جمع را حساب كنيد و با Grid كاري نداشته باشيد .

hosna66
شنبه 07 شهریور 1388, 22:29 عصر
بازم سلام
از دوستان ممنونم.اما کدهای بالا کار نکرد. اگه کسی راه دیگه ای بلده لطفا کمکم کنه
آقای amin1000 میشه بیشتر توضیح بدین و کد بذارین برام، ممنون میشم

hosna66
پنج شنبه 12 شهریور 1388, 09:50 صبح
سلام دوستان.
چرا کسی کمک نمیکنه؟:ناراحت:
من حتی تو خوندن اطلاعات از لیبل داخل گریدویو هم مشکل دارم.
خواهش میکنم راهنمایی کنید.ممنون

hosna66
یک شنبه 15 شهریور 1388, 15:54 عصر
یعنی هیچ کی نمیخواد کمک کنه؟:گریه:

z_bluestar
یک شنبه 15 شهریور 1388, 16:57 عصر
كاري كه مي خواهيد با DataBinding و Template Field Grid انجام ميشه .
در مورد اين ها مطالعه كنيد يا توي سايت Search كنيد.
مطالب زياده در مورد اينا

saeeedft
دوشنبه 16 شهریور 1388, 02:07 صبح
چرا عمل ضرب فیلد سوم رو به وسیله sql انجام نمیدید؟ عملیات ضربو اگه sql انجام بده و شما فقط نتیجه رو اینجا ببینید بهتره که؟ برای این کار هم میتونید از فیلد مجازی استفاده کنید

HamidiFar
دوشنبه 16 شهریور 1388, 07:38 صبح
دوست عزیز ، عملیات ضرب رو با خود sql انجام بده ، شاید برات راحت تر باشه .

این نکته را در نظر داشته باش این گونه عملیات ها ممکنه سرعت رو بیاره پایین اگه تو sql

انجام بشه ولی برای یه ضرب ساده فکر نمی کنم تاثیر داشته باشه.

موفق باشید.

بهنام بهمنی
دوشنبه 16 شهریور 1388, 10:07 صبح
البته همانطور که دوستان گفتند, ضرب را در sql , جمع را هم از بايند به دست بياور.اما اگر بخواهي با کد C#‎‎‎ انجام بدي بايد :

1- در هنگام بايند شدن مقدار هر سطر را ضرب و حاصل را نمايش بدي در رويداد rowdatabind



if (e.Row.RowType == DataControlRowType.DataRow)(e.Row.FindControl("label1") as Label).text ='10';


2-بعد از پايان کار اقدام به پيمايش رديفها کني



foreach (GridViewRow gvItems in ridview1.Rows)gvItems.Cells[1].Text='1';

compute87
چهارشنبه 18 شهریور 1388, 14:08 عصر
با سلام
دوست عزیز z_bluestar می شه در مورده راه حل اولتون یک مثال دیگه بگذارید آخه من درست نفهمیدم چطوری باید پارامترهای وروردی رو بدم.
ممنون از لطفتون.

z_bluestar
چهارشنبه 18 شهریور 1388, 14:43 عصر
<ItemTemplate>
<asp:Label ID="lblNewTopic" runat="server" Text='<%# NewTopic(DataBinder.Eval(Container.DataItem,"CategoryID").ToString()) %>'/>
</ItemTemplate>
NewTopic اسم يك متد كه پارامتر از نوع String قبول ميكند.
"CategoryID" اسم يكي از فيلدهاي DataSource گريدم هست .كه به صورت String به ايم متد پاس ميدم.
اين پارامتر رو به اين متدم پاس ميدم و خروجي متدم كه از نوع String تو Label قرار مي دم.

pouya2033
دوشنبه 30 فروردین 1389, 05:54 صبح
سلام ببخشید من می خوام دو تا از فیلد هامو توسط کد نویسی تو سیشارپ با هم ضرب کنم و داخل فیلد سوم بریزم واقعا ممنون میشم کسی بگه

e-arasteh
دوشنبه 30 فروردین 1389, 10:12 صبح
سلام ببخشید من می خوام دو تا از فیلد هامو توسط کد نویسی تو سیشارپ با هم ضرب کنم و داخل فیلد سوم بریزم واقعا ممنون میشم کسی بگه

دو تا فیلد چی؟ منظورتو واضح بگو اگه منظورت دو تا متغیره که کاری نداره:


int a = 2,b = 3,c;
c = a*b