المتتالية دروبدونليست مع مفك 5 ، أجاكس ، سي# و مسكل سيرفر

StackOverflow https://stackoverflow.com//questions/25008617

سؤال

أنا جديد تماما ل مفك القادمة من أشكال ويندوز و 3 الطبقة العمارة.

أحاول معرفة استخدام دروبدونليستس المتتالية (دل) بالسكان من قاعدة البيانات.إم باستخدام مس سكل سيرفر 2012 ، فس 2013

حاليا أنا أعمل على استبيان المستخدم الذي يمكن للمستخدمين الاختيار من إجابات متعددة من دل.تعتمد على بعض التحديدات أحتاج إلى تغيير الإجابات (مرة أخرى دل) على السؤال التالي.

قاعدة البيانات:

الجدول DDLStacks:

StackId | StackName
   1    | Berry
   2    | BerryColor
   3    ....

الجدول DDLStackContents (سسيد كومة معرف المحتوى ، والغرض الفهرسة)

SCId | StackId | GroupId | Key | Value
--------------------------------------
1 | 1 | Null | 1 | Grape
2 | 1 | Null | 2 | Avocado
3 | 1 | Null | 3 | Banana
4 | 2 | Null | 1 | Yellow
5 | 2 | Null | 2 | Green
6 | 2 | 1 | 3 | Red
7 | 2 | 1 | 4 | Orange
8...

الإجراء:

   CREATE PROCEDURE [dbo].[spDLLSelect]
        @p_StackName_in VARCHAR(20),
        @p_GroupId_in Int = null
    AS 
    BEGIN
        SELECT [Key],Value FROM DDLStackContents
        WHERE StackID IN (SELECT StackId FROM DDLStacks WHERE StackName = @p_StackName_in)
        AND (GroupId = @p_GroupId_in OR @p_GroupId_in IS null) 
        Order By [Key] 
    END

كما ترى DDLStacks عقد الأسئلة, DDLStackContents يحمل الإجابات المحتملة لهذا السؤال.

إذا كانت هناك مجموعة ، فيمكننا تحديد الإجابات فقط من تلك المجموعة وإلا فإن جميع الإجابات لمكدس معين.

الآن ثم قمت بإنشاء ADO.NET نموذج بيانات الكيان للوصول إلى سبدلسليكت.

الآن نموذج الفاكهة الخاص بي هو هذا

public class FruitModel
{
    public IEnumerable<SelectListItem> BerryList { get; set; }
    public IEnumerable<SelectListItem> BerryColorList { get; set; }

    [Display(Name = "Berry")]
    public byte? Berry { get; set; }

    [Display(Name = "BerryColor")]
    public byte? BerryColor { get; set; }
}

وحدة تحكم بلدي هو هذا ، ولست بحاجة لتحديد اللون تعتمد على نوع من التوت.قل ما إذا كان أفاكادو حدد الكل, إذا كان الموز مجرد مجموعة 1.

public class HomeController : Controller
{
    public ActionResult Index()
    {
        CherryEntities db = new CherryEntities();
        var model = new FruitModel();
        model.BerryList = new SelectList(db.spDLLSelect("Berry", null), "Key", "Value");
        //model.BerryColorList = new SelectList(db.spDLLSelect("BerryColor", null), "Key", "Value");
        //model.BerryColorList = new SelectList(db.spDLLSelect("BerryColor", 1), "Key", "Value");
        return View(model);
    }
}   

هنا وجهة نظري:

@using (Html.BeginForm("Register2", "Account", FormMethod.Post, new { @class = "form-horizontal", role = "form" }))
{

<div class="form-group">
    @Html.LabelFor(m => m.Berry, new { @class = "col-md-2 control-label" })
    <div class="col-md-10" >
        @Html.DropDownListFor(m => m.Berry, Model.BerryList, "Please Select")
    </div>
</div>

<div class="form-group">
    @Html.LabelFor(m => m.BerryColor, new { @class = "col-md-2 control-label" })
    <div class="col-md-10">
        @Html.DropDownListFor(m => m.BerryColor, Model.BerryColorList, "Please Select")
    </div>
</div>

}

هذا هو بلدي الترميز الأساسي ، لقد حاولت أساليب مختلفة لجعل هذا العمل ، أود أن أرى الطريقة الصحيحة للقيام بذلك مع أجاكس رمز كتبته بقوة.

قد تستخدم وجهات النظر الجزئية?أي أفكار?

هل كانت مفيدة؟

المحلول

كنت قد حصلت بالفعل على النموذج الذي يتم كتابة وجهة نظرك بقوة مع.كل ما عليك فعله هو إضافة حدث تغيير في القائمة المنسدلة (لمزيد من المعلومات ، انظر الرابط المشار إليه أدناه).في حدث التغيير ، يمكنك تحميل القيم حسب القيمة المحددة على سبيل المثال.إذا تم تحديد التوت ، فستحتاج إلى جلب القيم المقابلة للتوت ، أي العنب والأفوكادو.

يمكنك تحميل القيم باستخدام جافا سكريبت وهو أمر مفيد عندما يكون لديك مجموعة كبيرة من البيانات.أو يمكنك التحميل المسبق للعرض مع جميع البيانات وفي هذه الحالة ، تحتاج فقط إلى تصفية الإجابات بناء على السؤال المحدد في واجهة المستخدم.

للحصول على مساعدة حول كيفية تحقيق ذلك في الممارسة العملية ، يرجى الرجوع المتتالية دروبدوونليست في مفك 4.يمكنك العثور على مثال مماثل بناء على احتياجاتك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top