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

یافتن شماره آیتم در دیتالیستهای متداخل چگونه است؟

Y2K

Registered User
تاریخ عضویت
20 فوریه 2006
نوشته‌ها
656
لایک‌ها
1
محل سکونت
Location
من دوتا دیتالیست متداخل دارم که دیتالیست داخلی در زمان اجرا وقتی دیتالیست بیرونی مقدار گرفت مقدار دهی میشه(یعنی بر فرض یه گروهی رو از دیتابیس میکشه بیرون و به اول نصب میده و به ازای هر مورد از اولی داخل دیتابیس سرچ می کنیم و به دومی نسبت میدیم)

تا اینجا مشکلی نیست
مثلا:

کد:
<asp:datalist Width="90%" id="DataList2" runat="server">
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem,"TName") %>
<br>
<asp:DataList ID="tire" OnItemCommand="select" DataKeyField="TireID" Height=100% Width=100% DataSource ='<%#GetChildRelation(Container.DataItem, "TireComMade")%>' runat="server" EnableViewState="False">
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem,"TireModel") %>
<asp:LinkButton ForeColor="#996666" Font-Size="14" Font-Underline="True" CommandName="item" Runat="server">خرید</asp:LinkButton>
</ItemTemplate>
</asp:DataList>
</ItemTemplate>
</asp:datalist>

حال من یه دونه لینک باتن به نام خرید به دیتالیست داخلی اضافه کردم و کامند نیم اون رو هم ست کردم و تابع مورد نیازش رو هم نوشتم
مثلا:

کد:
public void select(object sender, DataListCommandEventArgs e)
		{
		
	
		

		}


به شکل زیر:


image.JPG


وقتی روی لینک خرید کلیک می کنم تابع فراخونی میشه و حتی شماره آیتمی رو هم که روش کلیک شده در دیتالیست داخلی بدست میارم ولی مساله اینجاست چگونه متوجه بشم روی کدوم آیتم از دیتالیست خارجی کلیک شده ( برای اعمال دستورات و قالب Selected Template )


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

H_R

مدیر بازنشسته
تاریخ عضویت
30 مارس 2005
نوشته‌ها
3,298
لایک‌ها
17
سن
42
محل سکونت
North Pole
از این چیزایی که گفتی و همینطور از این چیزایی که نوشتی من که سر در نیاوردم (اصلا نتونستم ربطشون بدم ) خلاصه چیزی که ما دستگیرمون شد این بود که شما دوتا تیبل داری که به هم مربوطن و پیریمیری کی یکی فرین کی اونیکی اه خوب در این صورت بهتره که از inner Join موقع select کردن استفاده کنی ، یعد کلا یک تیبل داری که میتونی باهاش راحت کار کنی !
(البته اگه جوابیت این نبود یه کم واضح تر بگو ببنیم اصلا چی میگی ؟! )
 

Y2K

Registered User
تاریخ عضویت
20 فوریه 2006
نوشته‌ها
656
لایک‌ها
1
محل سکونت
Location
مرسی
ممنون
حدس میزدم توضیحم ناقص باشه
اون دو تا تیبل درسته (بحثش به کنار)
اصل کار بدین صورته که من داخل ItemTemplate دیتالیست اول یه دیتالیست دیگه تعریف کردم
وقتی که دیتالیست اول رو با تیبل اول بایند می کنم بطور معمولی آیتم هاش رو نمایش میده حال چون دیتالیست دوم داخل دیتالیست اولی هست به ازای هر آیتم دیتالیست اول دیتالیست دوم بایند میشه( 2 تا دیتالیست داخل هم )
همونطور که تو شکل می بینید دیتالیست اول نام شرکت و به ازای هر شرکت محصولاتش رو در دیتالیست داخلی نشون میدم
همونطور که میدونید با گذاشتن یک لینک باتن در یک دیتالیست می تونیم با تعریف CommandName لینک باتن و OnItemCommand در داخل دیتالیست یه تابع تعریف کرد که شماره آیتم رو میگیره و میشه فهمید کدوم یکی از گزینه های دیتالیست انتخاب شده اند.
حال همونطور که تو شکل می بینید من لینک باتن خرید رو داخل دیتالیست دوم قرار دادم و می خوام با کلیک روی اون دیتالیست دوم به حالت SelectedItem بره تا بتونم تعدادی رو که میخوام بخرم بگیرم
مشکل همینجاست چطوری بفهمم که روی کدوم آیتم از دیتالیست دوم و به دنبال اون کدوم آیتم از دیتالیست اول کلیک شده.
البته فقط شماره آیتم رو پیدا می کنم ولی چون دیتالیست داخلی در هنگام اجرا مقدار میگیره یعنی حتما باید دیتالیست اول بایند بشه تا مقادیر اون مشخص بشه نمی تونم دیتالیست داخلی رو به حالت انتخاب شده ببرم



این باشه


نظرتون راجع به این ایده چیه که چون میتونم شماره فیلد تیبل رو بگیرم بجای لینک باتن یه هایپرلینک بذارم و خرید رو در یک صفحه دیگه انجام بدم.
 

H_R

مدیر بازنشسته
تاریخ عضویت
30 مارس 2005
نوشته‌ها
3,298
لایک‌ها
17
سن
42
محل سکونت
North Pole
فکر میکنم بهترین ایده همین باشه ، البته حتی میتون یاز کوئری استرینگ استفاده کنی و توی همون صفحه بمونی!
اون کاری که تو میخوای بکنی به علت اینکه دوتا دیتالیست توهم توهم داری استفاده میکنی یه کم پیچیده میشه ، الان فکری به ذهنم نمیرسه قائدتا باید شماره آیتم دیتالیست داخلی رو بگیری ؟!
 

Y2K

Registered User
تاریخ عضویت
20 فوریه 2006
نوشته‌ها
656
لایک‌ها
1
محل سکونت
Location
مرسی همون ایده رو دنبال می کنم و از کوئری استرینگ استفاده می کنم.



یه چیزه دیگه به ذهنم رسیده که بعدا روش کار میکنم (اینه که کنترل Parent آیتم رو پیدا کنم که میشه دیتالیست داخلی بعد دوباره کنترل Parent دیتالیست داخلی رو پیدا کنم که میشه آیتم دیتالیست خارجی)
 
بالا