0
각 페이지에는 고유 한 DDL이있는 여러 양식이 있습니다. 각 DDL마다 다른 데이터 소스가 필요하기 때문에 여러 가지 형식이 있습니다. 제출 단추를 누르면 "ddlCategory"컨트롤을 찾을 수 없다는 오류가 발생합니다. 그것은 다른 formview 컨트롤에 있기 때문에 그것이 있다고 가정합니다. 여기에 마크 업입니다다른 formview 컨트롤 안에있는 다른 컨트롤에 액세스 할 수 있습니까?
protected void AddRec(object sender, EventArgs e)
{
DropDownList ddlCategory = (DropDownList)FormView1.FindControl("ddlCategory");
DropDownList ddlOrg = (DropDownList)FormView2.FindControl("ddlOrg");
DropDownList ddlAtty = (DropDownList)FormView3.FindControl("ddlAtty");
string constr = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\webvideos.mdb;";
string cmdstr = "INSERT INTO [Org_Sec_Atty] ([OrgID], [SecID], [AttyID]) VALUES (?, ?, ?)";
OleDbConnection con = new OleDbConnection(constr);
OleDbCommand com = new OleDbCommand(cmdstr, con);
con.Open();
com.Parameters.AddWithValue("@OrgID", ddlCategory.SelectedValue);
com.Parameters.AddWithValue("@SecID", ddlOrg.SelectedValue);
com.Parameters.AddWithValue("@AttyID", ddlAtty.SelectedValue);
com.ExecuteNonQuery();
con.Close();
Response.Redirect("ManageProfAffs.aspx");
}
다시 말하지만, 그것은 제어 ddlCategory를 찾을 수 없습니다 알려줍니다 : 여기
<asp:FormView ID="FormView1" runat="server" DataKeyNames="ID"
DataSourceID="AccessDataSource1" DefaultMode="Insert" >
<InsertItemTemplate>
Select a Category:<br />
<asp:DropDownList ID="ddlCategory" runat="server" AutoPostBack="True"
DataSourceID="AccessDataSource1" DataTextField="ORG_NAME"
DataValueField="ID">
</asp:DropDownList>
</InsertItemTemplate>
</asp:FormView>
<asp:AccessDataSource ID="AccessDataSource1" runat="server"
DataFile="~/App_Data/webvideos.mdb"
SelectCommand="SELECT * FROM [ORGANIZATIONS]"/>
<br />
<asp:FormView ID="FormView2" runat="server" DataKeyNames="ID"
DataSourceID="AccessDataSource2" DefaultMode="Insert" >
<InsertItemTemplate>
Select an Organization:<br />
<asp:DropDownList ID="ddlOrg" runat="server"
DataSourceID="AccessDataSource2" DataTextField="SectionName"
DataValueField="ID">
</asp:DropDownList>
</InsertItemTemplate>
</asp:FormView>
<asp:AccessDataSource ID="AccessDataSource2" runat="server"
DataFile="~/App_Data/webvideos.mdb"
SelectCommand="SELECT ID,SectionName FROM ORG_SECTIONS WHERE [email protected] ">
<SelectParameters>
<asp:ControlParameter ControlID="ddlCategory"
PropertyName="SelectedValue"
Name="ID" Type="String"
DefaultValue="" />
</SelectParameters>
</asp:AccessDataSource>
<br />
<asp:FormView ID="FormView3" runat="server" DataKeyNames="ID"
DataSourceID="AccessDataSource3" DefaultMode="Insert" >
<InsertItemTemplate>
Select an Attorney:<br />
<asp:DropDownList ID="ddlAtty" runat="server"
DataSourceID="AccessDataSource3" DataTextField="Expr1" DataValueField="ATTY_ID">
</asp:DropDownList>
</InsertItemTemplate>
</asp:FormView>
<asp:AccessDataSource ID="AccessDataSource3" runat="server"
DataFile="~/App_Data/webvideos.mdb"
SelectCommand="SELECT ATTY_ID, NAME & ' ' & INITIAL & ' ' & LASTNAME AS Expr1 FROM ATTORNEYS ORDER BY NAME & INITIAL & ' ' & LASTNAME">
</asp:AccessDataSource>
뒤에 코드입니다. 하나의 formview에 모든 것을 넣을 생각은했지만 각 드롭 다운 목록마다 다른 데이터 소스를 만드는 방법은 무엇입니까? 또한 모든 formview 컨트롤을 사용하지 않고 그냥 "이 [ID of the ddl]"사용하지만 null 참조 값을 준. 이 작품을 만드는 방법에 대한 아이디어가 있습니까?
, 왜 다른 dropdownlists에 대해 서로 다른 데이터 소스를 사용할 수없는 이유는 무엇입니까? –
DDL은 자체 데이터 소스가있는 formview 내부에 있습니다. 다른 데이터 소스를 계속 사용할 수 있습니까? 예를 들어, formview 컨트롤을 datasource1, 내 datasource2 내 DDL formview 안에 사용할 수 있습니까? – Joseph