मेरे पास 2 DropDownList
मेरे रूप में नियंत्रण है, जिसमें से दूसरा अपने बाध्यकारी पैरामीटर के रूप में पहले के SelectedValue
का उपयोग करता है।एक टेम्पलेट नियंत्रण में बाध्यकारी ड्रॉपडाउनलिस्ट को लागू करना
दोनों DropDownList
नियंत्रण FormView
के डेटा स्रोत एक बाध्यकारी अभिव्यक्ति का उपयोग कर के लिए बाध्य एक FormView.InsertItemTemplate
SelectedValue
साथ गुण में हैं।
पहली बार FormView
सम्मिलित मोड में प्रस्तुत करता है, सब कुछ ठीक काम करता है। समस्या AutoPostBack
के बाद DropDownList
से FormView
नहीं है (0)। दूसरे DropDownList
पर बदल गई है, इसलिए यह बाध्य (उद्देश्य के रूप में) है, लेकिन बाध्यकारी अभिव्यक्ति पर एक अपवाद होता है
System.InvalidOperationException:: दूसरे DDL, मैं
FormView
के बाद लगता है कि पास पर बाध्यकारी नहीं है इस तरह के eval(), XPath(), और बाइंड() के रूप में Databinding तरीकों केवल संदर्भ में इस्तेमाल किया जा सकता एक डेटाबेस नियंत्रण।<InsertItemTemplate> . . . <tr class="GridViewRowB"> <td class="GridViewCell"> Offense Type </td> <td class="GridViewCell"> <asp:DropDownList ID="ddlOffenseType" runat="server" DataSourceID="dsOffenseType" AutoPostBack="true" DataValueField="OffenseTypeID" DataTextField="Description" SelectedValue='<%# Bind("OffenseTypeID") %>'> </asp:DropDownList> <asp:ObjectDataSource ID="dsOffenseType" runat="server" TypeName="OffenseType" SelectMethod="GetAll"> <SelectParameters> <asp:Parameter Name="ActiveOnly" DefaultValue="True" Type="Boolean" /> </SelectParameters> </asp:ObjectDataSource> </td> </tr> <tr class="GridViewRowA"> <td class="GridViewCell"> Attorney </td> <td class="GridViewCell"> <asp:DropDownList ID="ddlAttorney" runat="server" DataSourceID="dsAttorney" DataValueField="AttorneyID" DataTextField="AttorneyNameWithCount" SelectedValue='<%# Bind("AttorneyID") %>'> </asp:DropDownList> <asp:ObjectDataSource ID="dsAttorney" runat="server" TypeName="Attorney" SelectMethod="GetAttorneyWithCaseCount"> <SelectParameters> <asp:Parameter Name="ActiveOnly" DefaultValue="True" Type="Boolean" /> <asp:ControlParameter Name="OffenseTypeID" Type="Int32" ControlID="ddlOffenseType" PropertyName="SelectedValue" /> </SelectParameters> </asp:ObjectDataSource> </td> </tr> . . . </InsertItemTemplate>
मेरा प्रश्न है: सबसे अच्छा तरीका है इस कार्यक्षमता काम करने के लिए क्या है
यहाँ मार्कअप है? क्या डीडीएल दोनों को टेम्पलेट के अंदर रखना संभव है? मैं AJAX टूलकिट या अन्य क्लाइंट-साइड समाधानों का उपयोग करने से बचना पसंद करूंगा।
ठीक तो .... तो मैं 'FormView संभाल करने की आवश्यकता होगी है ItemInserting' और मैन्युअल रूप से पैरामीटर जोड़ें? 'संपादन' मोड में एक ही मुद्दे के बारे में क्या? प्रारंभिक और अद्यतन मूल्य दोनों मैन्युअल रूप से संभाल लें? वंशावली के लिए उदाहरण कोड की सराहना की जाएगी। – pseudocoder
हाँ, बिल्कुल। आपको संपादन के लिए भी ऐसा ही करना है। –
मैंने इस समाधान को सत्यापित किया है। धन्यवाद! मेरे पास इस तरह के कुछ विचार थे लेकिन यह सुनिश्चित नहीं था कि अधिकांश लोग समस्या से कैसे संपर्क करते हैं। – pseudocoder