Konnte nicht finden, Kontrolle in ControlParameter innen EditItemTemplate

Arbeite ich an einer Dynamic Data-website, und ich habe in eine Wand laufen. Ich habe eine Details-Seite, wo Sie die details für die einzelnen Mitarbeiter gesehen, und dann habe ich eine separate Seite zu editieren jedes einzelnen Mitarbeiters. Ich Tat dies, weil ich DropDownList-Boxen für die Abteilung und Arbeit in jeder Abteilung. Dennoch, ich habe Probleme beim Zugriff auf die Abteilung, die ddl-und ich denke, dass es ist, weil es in einem EditItemTemplate. Hier ist, was ich habe:

<asp:DetailsView ID="dvEmployee" 
                    DataSourceID="EmpDVds" 
                    AutoGenerateRows="false" 
                    DataKeyNames="Id" 
                    GridLines="None" 
                    CellSpacing="10" 
                    runat="server" DefaultMode="Edit">
                    <Fields>
                        <asp:TemplateField HeaderStyle-Font-Bold="true" HeaderText="Department: ">
                            <EditItemTemplate>
                                <asp:DropDownList ID="ddlDept" DataSourceID="DeptDDLds" DataTextField = "DepartmentName" DataValueField = "Id" runat="server" SelectedValue='<%#Bind("DeptID") %>' />
                            </EditItemTemplate>
                        </asp:TemplateField>
                        <asp:TemplateField HeaderStyle-Font-Bold="true" HeaderText="Job Code: ">
                            <EditItemTemplate>
                                <asp:DropDownList ID="ddlJob" DataSourceID="JobDDLds" DataTextField = "JobName" DataValueField = "Id" runat="server" />
                            </EditItemTemplate>
                        </asp:TemplateField>
                    </Fields>

Dann bin ich versucht, die ddlDept SelectedValue zum Auffüllen der ddlJob. Hier ist die DataSource, die ich versuche zu verwenden.

<asp:SqlDataSource ID="JobDDLds"
                    SelectCommand="
                        SELECT 
                        Id, 
                        Code+' - '+[Desc] AS JobName,
                        Department_Id 
                        FROM 
                        JobCodes 
                        WHERE
                        JobCodes.Department_Id = @DeptID"
                    ConnectionString="<%$ConnectionStrings:TrainingDatabaseConnection %>" runat="server" >
                        <SelectParameters>
                            <asp:ControlParameter ControlID="ddlDept" PropertyName="SelectedValue"
                                    Name="DeptID" Type="Int32" />
                        </SelectParameters>
                    </asp:SqlDataSource>

Ich weiß, dass das format der Select-parameter ist korrekt, da bin ich mit einem anderen ddl-zum Auffüllen der Detailansicht und ich weiß, dass die Beziehung zwischen den Abteilungen und JobCodes ist richtig, denn ich verwende es erfolgreich in und AddEmployee Seite.

Hier ist die Fehlermeldung die ich bekomme:

Konnte nicht finden, kontrollieren 'ddlDept' in ControlParameter 'DeptID'.

Ich bin ich richtig in der Annahme, dass es keinen Zugriff auf die ddlDept, indem es die ID, denn es ist im EditItemTemplate? Wie kann ich dieses Problem beheben? Andere Vorschläge, wie dies zu erreichen? Jegliche Hilfe wird sehr geschätzt.

Überprüfen Sie, ob dieser hilft. Ist keine ideale Lösung, aber es könnte für Sie arbeitet.

InformationsquelleAutor Tyler Mortensen | 2012-05-21

Schreibe einen Kommentar