ahmadhasani
یک شنبه 30 تیر 1392, 14:03 عصر
سلام. من مشغول طراحی یه سایت برای فروش کفش هستم. تو این پروژه برای هر محصول ، یک مجموعه (مثلآ کفش ورزشی) و یک زیرمجموعه مرتبط (مثلآ فوتبالی) در نظر گرفته شده که آخرش میشه «کفش فوتبالی نایک». حالا مشکل اینه که توی ویرایش مطلب ، مجموعه ها رو درست لیست میکنه و اونی که کاربر انتخاب کرده رو هم سلکت می کنه ، اما زیرمجموعه های مرتبط رو فقط لیست می کنه و اونی که کاربر توی دیتابیس انتخاب کرده رو سلکت نمیکنه و پیشفرضش اولین زیرمجموعه هست. مثلآ اگه زیرمجموعه های کفش کفش ورزشی ، فوتبالی و بسکتبالی باشه و کاربر بسکتبالی رو برای یک کفش انتخاب کرده باشه ، توی ویرایش محصول ، اولین گزینه رو میاره (یعنی فوتبالی)
این کدهای مربوط به لود اسامی مجموعه ها در دراپ دان لیست:
<asp:DropDownList ID="ddlColls" runat="server" DataSourceID="dsColls" CssClass="ddl"
DataTextField="CollFaName" DataValueField="CollID" AutoPostBack="True">
</asp:DropDownList>
<asp:SqlDataSource ID="dsColls" runat="server"
ConnectionString="<%$ ConnectionStrings:ShoesConnectionString %>"
SelectCommand="SELECT * FROM [Colls]"></asp:SqlDataSource>
اینم کدهای مربوط به لود اسامی زیرمجموعه ها در دراپ دان لیست دومی براساس دراپ دان اولی:
<asp:DropDownList ID="ddlSubColls" runat="server" DataSourceID="dsSubColls" CssClass="ddl"
DataTextField="SubCollFaName" DataValueField="SubCollID">
</asp:DropDownList>
<asp:SqlDataSource ID="dsSubColls" runat="server"
ConnectionString="<%$ ConnectionStrings:ShoesConnectionString %>"
SelectCommand="SELECT * FROM [SubColls] Where [SubColl_CollID] = @CollID">
<SelectParameters>
<asp:ControlParameter Name="CollID" ControlID="ddlColls" Type="Int32" />
</SelectParameters>
</asp:SqlDataSource>
اینم کدهای گرید ویو مربوط به فراخوانی انتخاب کاربر از دیتابیس (کدبیهایند):
protected void grdListShoes_RowCommand(object sender, GridViewCommandEventArgs e)
{
switch (e.CommandName)
{
case "DoEdit":
{
mvShoes.SetActiveView(vwEdit);
int shoeid = Convert.ToInt32(e.CommandArgument);
Sho shoes = (from p in db.Shoes
where p.ShoeID == shoeid
select p).FirstOrDefault();
if (shoes != null)
{
ddlColls.SelectedValue = shoes.Shoe_CollID.ToString();
ddlSubColls.SelectedValue = shoes.Shoe_SubCollID.ToString();
txtSize.Text = shoes.ShoeSize;
txtFaName.Text = shoes.ShoeFaName;
txtEnName.Text = shoes.ShoeEnName;
txtRuName.Text = shoes.ShoeRuName;
txtFaPrice.Text = shoes.ShoeFaPrice;
txtEnPrice.Text = shoes.ShoeEnPrice;
}
break;
}
واقعآ نمیدونم مشکل چیه که زیرمجموعه درست رو لود نمیکنه! :اشتباه:
این کدهای مربوط به لود اسامی مجموعه ها در دراپ دان لیست:
<asp:DropDownList ID="ddlColls" runat="server" DataSourceID="dsColls" CssClass="ddl"
DataTextField="CollFaName" DataValueField="CollID" AutoPostBack="True">
</asp:DropDownList>
<asp:SqlDataSource ID="dsColls" runat="server"
ConnectionString="<%$ ConnectionStrings:ShoesConnectionString %>"
SelectCommand="SELECT * FROM [Colls]"></asp:SqlDataSource>
اینم کدهای مربوط به لود اسامی زیرمجموعه ها در دراپ دان لیست دومی براساس دراپ دان اولی:
<asp:DropDownList ID="ddlSubColls" runat="server" DataSourceID="dsSubColls" CssClass="ddl"
DataTextField="SubCollFaName" DataValueField="SubCollID">
</asp:DropDownList>
<asp:SqlDataSource ID="dsSubColls" runat="server"
ConnectionString="<%$ ConnectionStrings:ShoesConnectionString %>"
SelectCommand="SELECT * FROM [SubColls] Where [SubColl_CollID] = @CollID">
<SelectParameters>
<asp:ControlParameter Name="CollID" ControlID="ddlColls" Type="Int32" />
</SelectParameters>
</asp:SqlDataSource>
اینم کدهای گرید ویو مربوط به فراخوانی انتخاب کاربر از دیتابیس (کدبیهایند):
protected void grdListShoes_RowCommand(object sender, GridViewCommandEventArgs e)
{
switch (e.CommandName)
{
case "DoEdit":
{
mvShoes.SetActiveView(vwEdit);
int shoeid = Convert.ToInt32(e.CommandArgument);
Sho shoes = (from p in db.Shoes
where p.ShoeID == shoeid
select p).FirstOrDefault();
if (shoes != null)
{
ddlColls.SelectedValue = shoes.Shoe_CollID.ToString();
ddlSubColls.SelectedValue = shoes.Shoe_SubCollID.ToString();
txtSize.Text = shoes.ShoeSize;
txtFaName.Text = shoes.ShoeFaName;
txtEnName.Text = shoes.ShoeEnName;
txtRuName.Text = shoes.ShoeRuName;
txtFaPrice.Text = shoes.ShoeFaPrice;
txtEnPrice.Text = shoes.ShoeEnPrice;
}
break;
}
واقعآ نمیدونم مشکل چیه که زیرمجموعه درست رو لود نمیکنه! :اشتباه: