مكرر ASP.NET مع USERCONTROL - إعداد commandArgument
-
27-09-2019 - |
سؤال
لدي رمز المكرر التالي:
<asp:Repeater ID="repMain" runat="server" OnItemCommand="repMain_ItemCommand" EnableViewState="false">
<ItemTemplate>
<dmg:testcontrol runat="server" MyData=<%#Container.DataItem %>>
</dmg:testcontrol>
</ItemTemplate>
</asp:Repeater>
يشبه UserControl testControl:
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="TestControl.ascx.cs" Inherits="TestRepeater.TestControl" %>
<asp:Literal runat="server" ID="litMain" Text="<%#MyData.MyValue %>"></asp:Literal>
<asp:DropDownList runat="server" ID="dropdownMain"></asp:DropDownList>
<asp:Button runat="server" ID="btnMain" Text="Click Me" CommandName="Update" CommandArgument="<%#dropdownMain.SelectedValue%>"/>
هل من الممكن بالنسبة لي أن أرسل من خلال القائمة المنسدلة. selectedvalue باعتباره CommandArgument؟
الآن فقط هي سلسلة فارغة.
شكرًا
دنكان
ملاحظة: هذا مرتبط بـ مكرر ASP.NET غير ملزم بعد itemCommand لكنني اعتقدت أن الاثنين يختلفان بما فيه الكفاية للابتعاد.
المحلول
سؤال قديم بعض الشيء لكنني فقط وجدت أن نفسي وجدت إجابة على هذا.
CommandArgument="<%#dropdownMain.SelectedValue%>"
يحتاج إلى أن تبدو هكذا بدلا من ذلك مع اقتباسات واحدة! يجب إجراء جميع الرموز المضمنة داخل عناصر تحكم ASP.NET بهذه الطريقة بدلاً من ذلك.
CommandArgument='<%#dropdownMain.SelectedValue%>'
نصائح أخرى
لماذا لا تحصل على القيمة المحددة ، واستخدامها داخل وظيفة الأمر؟
(لماذا تحاول إرسالها كوسيطة ، من اللحظة التي يمكنك الحصول عليها داخل الأمر المسمى الوظيفة ونفسه)
لا تنتمي إلى StackOverflow