كيفية استرداد البيانات من مربعات النص إضافتها بشكل حيوي؟

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

سؤال

وايم مضيفا مربعات النص (وليس عدد محدد من مربعات النص) حيوي لنموذج على صفحة ASP.NET، كيف يمكنني قراءة البيانات مرة أخرى من هذه مربعات النص؟

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

المحلول

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

نصائح أخرى

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

ومن جميع تطبيقات ASP.NET لقد عملت مع، وصافي يحب استخدام الخوارزمية التالية عند إنشاء معرف للتحكم الملقم:

ctl00$cphBody$[ControlID]

وحاول استخدام هذه الخوارزمية عند الوصول إلى البيانات الخاصة بك من مربعات النص ديناميكيا.

عند إضافتها يجب أن تكون منحهم أسماء / هويات، ويمكنك استخدام هذه مرجع لهم.

إذا لم يكن كذلك، المشي DOM بك في جافا سكريبت للعثور عليهم داخل النموذج قمت بها - أنها سوف تكون في نفس الترتيب الذي قمت بإدراجه لهم.

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

و-Adam

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

في جانب الخادم، في أي معالج حدث وقع بعد Page_Init يمكنك تكرار خلال <لأ href = "http://msdn.microsoft.com/en-us/library/system.web.httprequest.form.aspx" يختلط = "نوفولو noreferrer"> Request.Form المجموعة.

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

إذا كنت إضافة عناصر تحكم ASP.NET الديناميكية (في Page_Render على سبيل المثال) يمكنك أيضا إعادة الضوابط واستخدام ممتلكاتهم.

ويمكنك استخدام FindControl وتمرير ID النص للحصول على مثيل من النص عند ما بعد الظهر. الخاصية Text يحتوي على البيانات، بما أننا في مرحلة تحميل الصفحة أو في وقت لاحق في الدورة. عند إضافة التحكم الديناميكي، تجاوز أسلوب CreateChildControls وإضافة عناصر التحكم الديناميكي للسيطرة على التسلسل الهرمي في هذه المرحلة من الدورة.

وتذكر أن في ASP.Net، كل إعادة النشر هو نسخة جديدة من الفئة الخاصة بك. إذا قمت بإنشاء هذه الضوابط خلال إعادة النشر السابق أو على القول الأول ثم كانوا القمامة التي تم جمعها مع بقية تلك المثال السابق. وذلك لاستخدام عناصر التحكم في هذه الحالة جديد، تحتاج إلى إنشائها مرة أخرى. إذا كنت في حاجة إلى معلومات حالة تحميل لتلك الضوابط (بما في ذلك أي القيمة المدخلة من قبل المستخدم)، تحتاج أيضا إلى إنشاء <م> قبل تحميل حالة العرض، وهذا يعني أن تفعل ذلك خلال الحدث التهيئة، بدلا من حدث الحمل.

لإنشاء عناصر تحكم ديناميكية، وأود أن عادة استخدام تحكم العنصر النائب ASP.NET وإضافة عناصر التحكم الديناميكي لهذه الحاوية.

وسوف أعطي كل التحكم الديناميكي معرف.

وبعد ذلك يمكنك بعد ذلك استخدام FindControl على العنصر النائب للوصول إلى التحكم الديناميكي.

وأنا أقول "التحكم الديناميكي" على أنها تعني الضوابط إضافة أثناء وقت التشغيل

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