البحث عن نصيحة: تحديث لFormView بناء على القيمة دروبدوونليست

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

سؤال

وتحيات!

وأنا أبحث عن بعض النصائح بخصوص هذا النهج إلى البيانات التي تظهر في FormView بناء على اختيار دروبدوونليست داخل تلك السيطرة FormView. على سبيل المثال، لدي على UserControl بما يلي:

<asp:XmlDataSource ID="xdsMyXmlData" runat="server" EnableCaching="false" XPath="Root/Membership" />
<asp:FormView ID="fvwMyFormView" runat="server" DataSourceID="xdsMyXmlData">
    <ItemTemplate>
        <div>
            <h2><%# XPath("Title") %></h2>

            <fieldset>
                <asp:DropDownList ID="ddlMemberTypes" runat="server" DataSource='<%# XPathSelect("MenuItems/*") %>'></asp:DropDownList>
            </fieldset>
            <table>
                <thead>
                    <tr>
                        <th><%# XPath("Columns/Name") %></th>
                        <th><%# XPath("Columns/Age") %></th>
                        <th><%# XPath("Columns/DateJoined")%></th>
                    </tr>
                </thead>
                <tbody>
                    <asp:Repeater ID="rptMembershipInfo" runat="server" DataSource='<%# XPathSelect("Members/*") %>'>
                        <ItemTemplate>
                            <tr>
                                <th><%# XPath("Data/Name") %></th>
                                <td><%# XPath("Data/Age") %></td>
                                <td><%# XPath("Data/DateJoined") %></td>
                            </tr>
                        </ItemTemplate>
                    </asp:Repeater>
                </tbody>
            </table>
        </div>    
    </ItemTemplate>
</asp:FormView>        

وONLOAD في UserControl () ليبدو مثل هذا حتى الآن:

protected override void OnLoad(EventArgs e)
{
    base.OnLoad(e);

    string l_XmlData = MyControllerClass.GetMembershipTableXml(0);
    xdsMyXmlData.Data = l_XmlData;
}

وأود أن تكون قادرة على تمرير قيمة العنصر المحدد في دروبدوونليست حيز GetMembershipTableXml () من أجل استرداد XML المقابلة ومن ثم استخدامها لتجميع قيم FormView. ما من شأنه أن يكون أفضل طريقة للقيام بذلك؟ القيام Response.Redirect العودة إلى الصفحة الحالية باستخدام القيمة دروبدوونليست اختيار كمتغير سلسلة الاستعلام؟ أنا على أمل هناك طريقة أفضل. ما رأيك؟

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

المحلول

ويمكنك إنشاء حدث لOnSelectedItemChanged على دروبدوونليست الخاص بك؛ عندما يحدث هذا، يمكنك انتزاع العنصر المحدد، واستدعاء وظيفة GetMembershipTableXml الخاص بك.

وأخيرا، لا تنسى للاتصال DataBind عناصر التحكم على FormView لتحديث القيم:)

أنا <م> التفكير هذا ما كنت بعد، ونأمل أن يساعد!

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