سؤال

وأنا أدرك أن عنصر التحكم CheckBox الافتراضية. NET لا يدعم الخاصية قيمة. هذا يبدو غريبا بالنسبة لي لأن مراقبة المدخلات يفعل قيمة الدعم كجزء من المواصفات أتش تي أم أل.

ولذا سؤالي هو ما إذا كان أو لا أحد هنا يعرف من عنصر تحكم مستخدم مخصصة هناك لasp.net التي تعمل على غرار القياسية ASP .NET خانة الاختيار وCheckBoxList؟

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

المحلول 5

ويبدو أن القيم لا يتم تقديمها في أتش تي أم أل ولكن لا تزال مخزنة في حالة العرض. لذلك كنت قادرا على سحب القيمة على جانب الملقم عندما الوصول إلى كائن عنصر القائمة في CheckboxList.Items ()

نصائح أخرى

وربما أنا سوء فهم سؤالك ولكن هل أنت على علم بأن يمكنك استخدام عناصر التحكم HTML نموذجية كذلك؟

وعلى سبيل المثال إنشاء صفحة ASPX وإضافة مصدر التالي:

    <div>
            <input type="checkbox" runat="server" id="chkBox" value="test" />
            <asp:Label ID="lblCheckboxValue" runat="server" />
    </div>

    <asp:Button runat="server" OnClick="Button_Click" />

وبعد ذلك في التعليمات البرمجية إضافة راء البرمجية التالية:

protected void Button_Click(object sender, EventArgs e)
        {
            if (chkBox.Checked)
                lblCheckboxValue.Text = chkBox.Value;
            else
                lblCheckboxValue.Text = "";

        }

ويمكنك تعيين الاختيار أتش تي أم أل خاصية قيمة مربع إلى ما تريد.

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

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

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

ولا أنها ليست هي نفسها

وميزة أنا أعمل على تتطلب ائحة ترقيات المنتج ليتم عرضها على شكل قائمة من خانات الاختيار. يتم على أساسها "فحص" خانات سوف تحتاج إلى إضافتها إلى المنتج. العناصر الموجودة في CheckBoxList الحيوية حتى عندما تكرار عبر العناصر المحددة أحتاج نوعا من معرف فريد. قيمة "مراجعة" ليست سوى منطقية

وماذا فعلت MS هنا يتم إنشاء الضوابط ASP بهم مع صافي يشعر لهم. ومع ذلك، لأنها من المفترض أن تعمل مع المتصفحات، فإنها <م> تقديم والضوابط HTML القياسية.

وحتى في التعليمات البرمجية الخلفية خدمات العملاء / باء، ترى .Checked (منطقي)، في حين أن العميل / جافا سكريبت ترى .value.

إذا ما تريده هو معرف فريد، ثم عليك أن تبحث في هوية أو ClientID. بدلا من ذلك، يمكنك إضافة سمة إلى checkboxt (.Attributes.Add ()) واستخدام ذلك.

ويمكنك إنشاء التحكم المخصصة الخاصة بك عن طريق تجاوز خانة الاختيار. وهنا مثال أنا خلقت فقط لإضافة خاصية القيمة متاح الخادم والعميل الجانب:

public class ValueCheckBox : CheckBox
{
    public string Value
    {
        get;
        set;
    }

    protected override void Render(System.Web.UI.HtmlTextWriter writer)
    {
        writer.AddAttribute("value", this.Value);
        base.Render(writer);
    }
}

وهذا هو السؤال القديم، ولكن تغيرت الأمور. أولا، في asp.net 4.6، سيتم تعيين السمة القيمة على مربع الاختيار. عدد قليل من هذه الإجابات هي ذات الصلة CheckBoxList، والذي يستخدم الطبقة عنصر القائمة لتوليد خانات.

وبلدي حل لمرحلة ما قبل 4.6 هو إضافة سمة البيانات. وهذا يخلق عنصر تحكم <span> حول مربع والتسمية التي يمكنك العثور مع جافا سكريبت.

        foreach( ListItem item in selCheckList.Items)
        {
            item.Attributes["data-role-id"] = item.Value;
        }

لا "مراجعة" نفس "القيمة"؟

http://www.w3schools.com/aspnet/control_checkbox.asp

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

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