formview의 편집 페이지에서 이미 생성 한 드롭 다운 목록을 현재 사용자의 SQL 데이터베이스에서 이전에 선택한 값으로 시작하려고합니다. SLN는 드롭 다운리스트의 각 항목에 대한 고유 한 값이며, PN이 드롭 다운리스트의 각 항목에 대한 배경 정보입니다드롭 다운 목록의 초기 값 선택
protected void ddlSelect_Init(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ReinstatementCS"].ConnectionString);
SqlCommand myCommand = new SqlCommand("SELECT Prefix, Number, ClassSection, Location, StartTime, EndTime, ClassDay, Prefix + Number + ', Section: ' + CAST(ClassSection AS VarChar) + ', Location: ' + Location + ', Start Time: ' + StartTime + ', End Time: ' + EndTime + ', Days: ' + ClassDay + ', Credits: ' + CAST(ClassCredit AS VarChar) AS PN, Capacity, GPAReqAbove1, GPAReqBelow1, CreditReqAbove30, CreditReqBelow30, ClassCredit, IsTransfer, SLN FROM Classes");
myCommand.Connection = con;
SqlDataAdapter da = new SqlDataAdapter(myCommand);
DataTable dt = new DataTable();
da.Fill(dt);
DropDownList ddlSelect = FVStudentClass.FindControl("ddlSelect") as DropDownList;
ddlSelect.DataSource = dt;
ddlSelect.DataTextField = "PN";
ddlSelect.DataValueField = "SLN";
ddlSelect.DataBind();
con.Close();
}
:
지금까지 내가 제대로 작동 드롭 다운 목록을 채울 수있는 코드를 . 특정 사용자가 이미 데이터베이스에 저장 한 내용과 일치하는 PN이 강조 표시된 항목을 원합니다.
protected void FVStudentClass_ModeChanging(object sender, FormViewCommandEventArgs e)
{
if (FVStudentClass.CurrentMode != FormViewMode.Edit)
return;
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ReinstatementCS"].ConnectionString);
SqlCommand myCommand = new SqlCommand("SELECT Prefix + Number + ', Section: ' + CAST(ClassSection AS VarChar) + ', Location: ' + Location + ', Start Time: ' + StartTime + ', End Time: ' + EndTime + ', Days: ' + ClassDay + ', Credits: ' + CAST(ClassCredit AS VarChar) AS PN, SLN FROM Classes JOIN StudentClass on SLN = SCClass WHERE SCWSUID = " + Request.QueryString["ALWSUID"]);
myCommand.Connection = con;
SqlDataAdapter da = new SqlDataAdapter(myCommand);
DataTable dt = new DataTable();
da.Fill(dt);
DropDownList ddlSelect = new DropDownList();
ddlSelect = FVStudentClass.FindControl("ddlSelect") as DropDownList;
if (ddlSelect != null)
{
ddlSelect.DataSource = dt;
ddlSelect.Items.FindByText(dt.Rows[0]["PN"].ToString()).Selected = true;
}
con.Close();
}
하지만 저장된 값을 선택하고 함께 드롭 다운리스트가 밖으로 시작하지 않기 때문에 나는 아직도 붙어 : 문제는 그 때 그 값은 내가 사용하고 선택하는 것입니다. 이 문제를 해결하는 방법을 알고 있습니까? 잘못된 명령을 사용하고 있습니까 (ModeChanging 외에도 다른 것을 사용해야합니까?)? 감사합니다. 모드가 실제로 변경되기 전에 FormView DataBound
이벤트에 DropDownList
항목을 선택하는 로직을 구현
코드를 디버그 할 수 있습니까? 이전에 저장된 값을 선택한 후에'ddlSeelct.SelectedValue'는 무엇입니까? –
그래서 방금 디버깅을했고 드롭 다운 목록에서 올바른 인덱스를 선택하는 것처럼 보이지만 너무 늦을 때까지 FVStudentClass_ModeChanging을 실행하지 않습니다. 수정 모드가 처음 나타날 때 실행하는 대신 편집 모드에서 업데이트 버튼을 누르면 코드가 실행됩니다. 어떤 생각을 어떻게 고쳐야합니까? – Austin