مشكل ارتباط چند كمبو باكس با يكديگر در Asp.net

DaneshAfrooz

New Member
سلام به همه دوستان
ميخواستم بدونم چه طور ميشه بين چند كومبوباكس ارتباط برقرار كرد به گونه اي كه با انتخواب يك گزينه از كومبو باكس اول اطلاعات خاص همان گزينه در كومبو باكس دوم به نمايش در بياد
البته بايد بگم ميخوام همه ي گزينه ها را از طريق پايگاه داده بگيرم(در محيط Asp.net و زبان Vb.net)
 
آخرین ویرایش:

TNZ187

Member
یک راه

سلام
می توانید هر کدام از 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

New Member
من كد بالا را امتحان كردم اما چند دستور زير خطا مي دادند
asp:SqlDataSource
DataSourceID
SelectParameters
asp:ControlParameter
اين هم از كد من

[ltr]<%@ 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="http://schemas.microsoft.com/intellisense/ie5">
</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>[/ltr]
 
آخرین ویرایش:

TNZ187

Member
سلام
من فقط یک نمونه کلی گذاشتم ، همین . فقط خواستم که صحبت هایم نمود دیداری هم داشته باشند . مثلا شما ممکن است در web.config هیچ connectionString با نام MyCon نداشته باشید که خوب باعث خطا دادن می شود
 

DaneshAfrooz

New Member
مي بخشيد دوست من
اين اولين باري است كه من با ASP.Net كار ميكنم اما بايد تا دو روز ديگه اين برنامه را آماده كنم اگر كمك كنيد بسيار ممنون ميشم .
در صورت امكان در مورد كدي كه نوشتيد توضيحي بفرماييد چون هنوز خيلي ابتدايي هستم(در مورد ASP.NET)
با تشكر دو باره
 

TNZ187

Member
سلام
می دونیم که هر DropDownList می تونه به یک دیتاسورس مرتبط بشود و اطلاعات خودش رو از اون دریافت کنه .
شما در این جا دو تا لیست دارید . یکی از دو برای دریافت اطلاعات نیازمند دیگری است . در واقع تا شما کتگوری مقاله را انتخاب نکنید ، نمی توانید مقالات داخل آن را ببینید .
برای پیاده سازی این قضیه ( Master/Detail ) کافیه که لیست اول رو به یک دیتاسورس ( sqldatasource1 ) مرتبط کنید . بعد لیست دوم را هم به دیتاسورس دومی . ولی نکته این جا این است که دیتاسورس دوم ، با یک شرط اطلاعات را دریافت می کند . آن هم این است که این اطلاعات در همان کتگوری باشد که کاربر انتخاب کرده . برای همین از دستور Where درون آن استفاده شده .
مقدار پارامتری که دستور where به آن نیاز دارد را از لیست اول دریافت می کنیم . برای همین از کنترل پارامتر استفاده کردیم .

معذرت می خواهم . چون فکر کردم همین مقدار توضیح کافی باشد . البته تا همین مقدار به موضوع این تاپیک ربط دارد . اگر می خواهید در مورد دیتاسورس ها و خصوصیات آن ها و DropDownList بیشتر بدانید بهتر است که یک تاپیک جدید باز کنید .
 

DaneshAfrooz

New Member
سلام دوست عزيز و صبح زيباي شما به خير
ممنون از توضيحات كامل شما از اين كه با اين حوصله پاسخ بنده را داديد
در واقع من بايد از شما معذرت خواهي كنم كه اينقدر سوالات ابتدايي مي پرسم البته بايد بگم كه متاسفانه كتابي كه تهيه كردم هيچ مطلبي در مورد دیتاسورس ها و DropDownList و هر آنچه كه در بالا ذكر كرديد نداشت
البته با راهنمايي شما تونستم اطلاعات لازم را پيدا كنم
متشكرم
 

جدیدترین ارسال ها

بالا