واضح آرشیو وب فارسی:سایت ریسک: مشكل ارتباط چند كمبو باكس با يكديگر در Asp.net DaneshAfrooz 18 خرداد 1387, 10:41سلام به همه دوستان ميخواستم بدونم چه طور ميشه بين چند كومبوباكس ارتباط برقرار كرد به گونه اي كه با انتخواب يك گزينه از كومبو باكس اول اطلاعات خاص همان گزينه در كومبو باكس دوم به نمايش در بياد البته بايد بگم ميخوام همه ي گزينه ها را از طريق پايگاه داده بگيرم(در محيط Asp.net و زبان Vb.net) TNZ187 18 خرداد 1387, 11:10سلام می توانید هر کدام از DropDown ها رو به یک دیتاسورس ارتباط بدهید . به طور مثال : لیست اول از بانک مقالات ، تمام عناوین را می خواند . کاربر می تواند این عناوین را انتخاب کند . لیست دوم هم تمام مقالاتی را که زیر مجموعه این مقاله هستند ، از پایگاه داده دریافت می کند . البته فرقش با اولی در این است که اولی بدون شرط ( where ) همه اطلاعات را می گرفت ، دومی اطلاعات را با توجه به گزینه انتخاب شده از اولی . چون خیلی خوب توضیح دادم یک نمونه هم گذاشتم <form id="form1" runat="server"> <div> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ Connectionstrings:MyCon %>" SelectCommand="Select * from ArticleCategory"></asp:SqlDataSource> </div> <asp:DropDownList ID="CategoryList" runat="server" DataSourceID="SqlDataSource1" DataTextField="Name" DataValueField="ID"> </asp:DropDownList> <br /> <br /> <asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ Connectionstrings:MyCon %>" SelectCommand="Select * from article where CategoryID=@CID"> <SelectParameters> <asp:ControlParameter ControlID="CategoryList" Name="CID" PropertyName="SelectedValue" /> </SelectParameters> </asp:SqlDataSource> <br /> <asp:DropDownList ID="ArtilceList" runat="server" DataSourceID="SqlDataSource2" DataTextField="Title" DataValueField="ID"> </asp:DropDownList> </form> فقط کافی که یک رویداد به این صفحه اضافه بشه که به هنگام انتخاب اولی دومی Bind بشود DaneshAfrooz 18 خرداد 1387, 13:49ممنون دوست عزيز از اين همه لطفت DaneshAfrooz 18 خرداد 1387, 16:03من كد بالا را امتحان كردم اما چند دستور زير خطا مي دادند asp:SqlDataSource DataSourceID SelectParameters asp:ControlParameter اين هم از كد من <%@ Page Language="vb" AutoEventWireup="false" Codebehind="WebForm1.aspx.vb" Inherits="MASP.WebForm1"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <title>WebForm1</title> <meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1"> <meta name="CODE_LANGUAGE" content="Visual Basic .NET 7.1"> <meta name="vs_defaultClientScript" content="JavaScript"> <meta name="vs_targetSchema" content=""> </HEAD> <body MS_POSITIONING="GridLayout"> <form id="form1" runat="server"> <div> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ Connectionstrings:MyCon %>" SelectCommand="Select * from ArticleCategory"></asp:SqlDataSource> </div> <asp:dropDownList ID="CategoryList" runat="server" DataSourceID="SqlDataSource1" DataTextField="Name" DataValueField="ID"> </asp:dropDownList> <br /> <br /> <asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ Connectionstrings:MyCon %>" SelectCommand="Select * from article where CategoryID=@CID"> <SelectParameters> <asp:ControlParameter ControlID="CategoryList" Name="CID" PropertyName="SelectedValue" /> </SelectParameters> </asp:SqlDataSource> <br /> <asp:dropDownList ID="ArtilceList" runat="server" DataSourceID="SqlDataSource2" DataTextField="Title" DataValueField="ID"> </asp:dropDownList> </form> </body> </HTML> TNZ187 18 خرداد 1387, 17:06سلام من فقط یک نمونه کلی گذاشتم ، همین . فقط خواستم که صحبت هایم نمود دیداری هم داشته باشند . مثلا شما ممکن است در web.config هیچ connectionString با نام MyCon نداشته باشید که خوب باعث خطا دادن می شود DaneshAfrooz 18 خرداد 1387, 17:15مي بخشيد دوست من اين اولين باري است كه من با ASP.Net كار ميكنم اما بايد تا دو روز ديگه اين برنامه را آماده كنم اگر كمك كنيد بسيار ممنون ميشم . در صورت امكان در مورد كدي كه نوشتيد توضيحي بفرماييد چون هنوز خيلي ابتدايي هستم(در مورد ASP.NET) با تشكر دو باره TNZ187 18 خرداد 1387, 17:22سلام می دونیم که هر DropDownList می تونه به یک دیتاسورس مرتبط بشود و اطلاعات خودش رو از اون دریافت کنه . شما در این جا دو تا لیست دارید . یکی از دو برای دریافت اطلاعات نیازمند دیگری است . در واقع تا شما کتگوری مقاله را انتخاب نکنید ، نمی توانید مقالات داخل آن را ببینید . برای پیاده سازی این قضیه ( Master/Detail ) کافیه که لیست اول رو به یک دیتاسورس ( sqldatasource1 ) مرتبط کنید . بعد لیست دوم را هم به دیتاسورس دومی . ولی نکته این جا این است که دیتاسورس دوم ، با یک شرط اطلاعات را دریافت می کند . آن هم این است که این اطلاعات در همان کتگوری باشد که کاربر انتخاب کرده . برای همین از دستور Where درون آن استفاده شده . مقدار پارامتری که دستور where به آن نیاز دارد را از لیست اول دریافت می کنیم . برای همین از کنترل پارامتر استفاده کردیم . معذرت می خواهم . چون فکر کردم همین مقدار توضیح کافی باشد . البته تا همین مقدار به موضوع این تاپیک ربط دارد . اگر می خواهید در مورد دیتاسورس ها و خصوصیات آن ها و DropDownList بیشتر بدانید بهتر است که یک تاپیک جدید باز کنید . DaneshAfrooz 19 خرداد 1387, 08:55سلام دوست عزيز و صبح زيباي شما به خير ممنون از توضيحات كامل شما از اين كه با اين حوصله پاسخ بنده را داديد در واقع من بايد از شما معذرت خواهي كنم كه اينقدر سوالات ابتدايي مي پرسم البته بايد بگم كه متاسفانه كتابي كه تهيه كردم هيچ مطلبي در مورد دیتاسورس ها و DropDownList و هر آنچه كه در بالا ذكر كرديد نداشت البته با راهنمايي شما تونستم اطلاعات لازم را پيدا كنم متشكرم
این صفحه را در گوگل محبوب کنید
[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 4170]