私は、詳細ビューには2つのドロップダウンリストがあり、1つはCollegeと呼ばれ、もう1つはDepartmentです。ユーザーが大学を選択した場合、部門ドロップダウンリストには、選択した大学のすべての部門が生成されます。詳細ビューの他のドロップダウンリストに基づくドロップダウンリストの変更ASP.NET
コントロールを見つけることができませんでした「DetailsView1:
<asp:SqlDataSource ID="SqlDataSource3" runat="server" ConnectionString="<%$ ConnectionStrings:UEDConnectionStringMarwaMarwa %>" SelectCommand="SELECT [ArName], [Code] FROM [College]"></asp:SqlDataSource> <asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:UEDConnectionStringMarwaMarwa %>" SelectCommand="SELECT [Code], [ArName] FROM [Department] WHERE ([CollegeCode] = @CollegeCode)"> <SelectParameters> <asp:ControlParameter ControlID="DetailsView1$DropDownList2" Name="CollegeCode" PropertyName="SelectedValue" Type="Int32" /> </SelectParameters> </asp:SqlDataSource>
これはエラーメッセージです:ここで
<asp:DetailsView ID="DetailsView1" runat="server" Height="50px" Width="600px" AutoGenerateRows="False" CssClass="table table-bordered mtop" DataKeyNames="ID" DataSourceID="SqlDataSource1" OnDataBound="DetailsView1_DataBound"> <FieldHeaderStyle CssClass="DetailsViewHeader" Width="200px" /> <Fields> <asp:TemplateField HeaderText="College" SortExpression="Colleges"> <EditItemTemplate> <asp:DropDownList ID="DropDownList2" runat="server" DataSourceID="SqlDataSource3" DataTextField="ArName" DataValueField="Code"></asp:DropDownList> <asp:HiddenField ID="HiddenColl" runat="server" value='<%# Eval("Colleges") %>' /> </EditItemTemplate> <ItemTemplate> <asp:Label ID="Label15" runat="server" Text='<%# Bind("Colleges") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Department" SortExpression="ArName"> <EditItemTemplate> <asp:DropDownList ID="DropDownList1" runat="server" DataSourceID="SqlDataSource2" DataTextField="ArName" DataValueField="Code"></asp:DropDownList> <asp:HiddenField ID="HiddenDep" runat="server" value='<%# Eval("ArName") %>' /> </EditItemTemplate> <ItemTemplate> <asp:Label ID="Label11" runat="server" Text='<%# Bind("ArName") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField ShowHeader="False"> <EditItemTemplate> <asp:Button ID="Button1" runat="server" CausesValidation="True" CommandName="Update" Text="Update" /> <asp:Button ID="Button2" runat="server" CausesValidation="False" CommandName="Cancel" Text="Cancel" /> </EditItemTemplate> <ItemTemplate> <asp:Button ID="Button1" runat="server" CausesValidation="False" CommandName="Edit" Text="Edit" /> <asp:Button ID="btnDelete" runat="server" CausesValidation="False" Text="Delete" OnClientClick="return confirm('Do you want to delete ?');" OnClick="btnDelete_Click" /> </ItemTemplate> <ControlStyle CssClass="btn-login" /> <ItemStyle CssClass="text-center" /> </asp:TemplateField> </Fields> </asp:DetailsView>
SqlDataSourcesである:ここでは
はたDetailsViewとドロップダウンリストがあります$ DropDownList2 'in ControlParameter' CollegeCode '
私はこれDetailsView1$DropDownList2
はので、それはたDetailsView
問題は何であるの内側にあるドロップダウンリストにアクセスすることができたのですか?
最初のドロップダウンリストでAutopostbackをtrueに設定すると、編集項目テンプレート内にsqlデータソースがある必要があるかもしれません。 – Nikki9696
これは、テンプレートコントロールのドロップダウンリストをカスケード表示するクリーンな例です。http://stackoverflow.com/questions/6749944/implement-cascading-dropdownlist-templates-in-a-templated-control – Nikki9696