1
埋め込みデータセットでコントロールがバインドされた後、ドロップダウンリストコントロールから値を取得するにはどうすればよいですか?具体的には、このコントロールはフッターテンプレート内にあり、ユーザーが新しい行を追加しようとすると、選択した項目を取得する必要があります。問題は、 "新規追加"をクリックしたときにドロップダウンリストに値が入力された後です。値は常にnullを返します。コントロールが埋め込まれたデータセットにバインドされた後に、ドロップダウンリストコントロールから値を取得するにはどうすればよいですか?
ROWコマンド機能:
protected void userView_RowCommand(object sender, GridViewCommandEventArgs e)
{
DropDownList addUserRole = (DropDownList)userView.FooterRow.FindControl("editUserRole");
string sqlCommandText = "INSERT INTO Users(USERNAME, PHONE, EMAIL, ROLEIDFK, DEPTIDFK, ACTIVE) VALUES(@username, @phone, @email, @roleidfk, @deptidfk, @active)";
scmd.Parameters.AddWithValue("@roleidfk", addUserRole.SelectedValue.ToString()); // >>>> Returns "AddUserRole was null"
}
ドロップダウンデータバインディング: - 少なくとも、それは違い
private DataTable GetData (string query)
{
var connection = sqlConnect.connect();
DataTable dt = new DataTable();
using (SqlConnection con = new SqlConnection(connection.ConnectionString))
{
con.Open();
using(SqlCommand cmd = new SqlCommand(query, con))
{
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
adapter.Fill(dt);
}
}
return dt;
protected void userView_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
}
if (e.Row.RowType == DataControlRowType.Footer)
{
DropDownList ddlUser = (e.Row.FindControl("ddlRoles") as DropDownList);
//query.addDataSetDdl(roles, "DESCRIPTION", "ROLEID", ddlUser);
ddlUser.DataSource = GetData("SELECT * FROM Roles");
ddlUser.DataTextField = "DESCRIPTION";
ddlUser.DataValueField = "ROLEID";
ddlUser.DataBind();
}