2つのドロップダウンリストを作成しようとしています。最初のドロップダウンリストにはユーザーのリストが表示され、2番目のドロップダウンリストは[OK]ボタンをクリックしたときにのみ表示され、ユーザーのアカウントのリストが表示されます。aspxページには次のコードがあります。
User:
<asp:SqlDataSource id="sourceUsers" runat="server" ConnectionString="<%$ ConnectionStrings:ct2012 %>"
SelectCommand="SELECT name, id FROM users" />
<asp:DropDownList id="codUsers" runat="server" DataSourceID="sourceUsers"
DataTextField="name" DataValueField="id" AutoPostBack="true" >
</asp:DropDownList>
<br />
Conto:
<asp:SqlDataSource id="sourceAccounts" runat="server" ConnectionString="<%$ ConnectionStrings:ct2012 %>" />
<asp:DropDownList id="accUsers" runat="server" DataSourceID="sourceAccounts"
DataTextField="code" DataValueField="id" Visible="false" >
</asp:DropDownList>
<br />
<asp:Button ID="btOK" text="OK" OnClick="cmdNew_Click" runat="server" />
ボタンイベントを処理するためのc#コードは次のとおりです。
protected void cmdNew_Click(object sender, EventArgs e)
{
sourceAccounts.SelectCommand = "SELECT code, id FROM accounts WHERE ID_user=" + codUsers.DataValueField;
accUsers.Visible = true;
}
問題は、codUsers.DataValueFieldがインデックスの値ではなく文字列「id」を返すことです。