سؤال

لا يوجد ASP: HIDDENFIELD الذي يمكن استخدامه في GridView لذلك كنت أتساءل عما سيعمل على مشابه لهذا.

منطقي لرغبة هذا هو أن لدي تصريح يثير onrowcommand. من هناك، يمكنني تحديد الصف الذي تم تحديده، لكن لا يمكنني استرداد قيمة النص من Buttonferfield لمعرفة البيانات التي كانت مرتبطة به (من خلال DatateXtfield).

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

اقترح شخص ما باستخدام Hiddenfield متداخلا داخل TemplateField، لكن لدي مشاكل في استرجاع قيمة النص من تلك الخفية. هل هناك طريقة للوصول إلى عنصر التحكم داخل Templatefield للحصول على قيمة النص من Hiddenfield؟

إذا كان لدى أي شخص أي اقتراحات للبدائل التي ستكون رائعة أيضا.

شكرا،
غير لامع

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

المحلول

يمكنك استعمال ال Datakeynames. الممتلكات على GridView.

gridView.DataKeyNames = { "values", "you", "want "};

ثم يمكنك الوصول إليهم مثل هذا:

gridView.DataKeys[rowId].Values["value"];

نصائح أخرى

يمكنك استخدام حقل قالب مع CommandArgument يساوي معرف السجل / الصف.

<ItemTemplate>
  <asp:Button ID="Button1" runat="server" CausesValidation="false" 
      CommandName="SomeCommand" Text="Button" CommandArgument='<%# Eval("SomeID") %'></asp:LinkButton>
</ItemTemplate>

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

هل من الممكن إضافة عمود معرف آخر، كممثل فريد من نوعه للسجل (صف)؟ يمكن تعيين عمود معرف معين بأسلوب: عرض = لا شيء من أجل إخفاءه، ولكن لا يزال المعرف داخل نموذج HTML.

ثم يمكنك استرداد قيمة هذا العمود المعرف بالذات المراد معالجته أبعد من ذلك.

أتمنى أن يساعدك هذا،

هادي

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