gridview 내부에 드롭 다운이 있으므로 gridview가로드되고 드롭 다운이 바인딩되면 드롭 다운에 드롭 다운 목록의 첫 번째 값만 표시됩니다. 이전에 선택한 값이 표시되지 않습니다. gridview로드 할 때 해당 행에 대해 이전에 선택된 것을 표시하려면 드롭 다운을 원합니다. 드롭 다운에 대한 영문 마크 업 : 여기 내 코드는 "I 바인딩 후이 코드 줄을 추가하기 위해 노력했다DropDown 선택한 값 표시 안 함
protected void RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
DropDownList ddl_Answer;
//get current index selected
int current_quest = Convert.ToInt32(GridView1.DataKeys[e.Row.RowIndex].Value);
ddl_Answer = e.Row.FindControl("ddl_Answer") as DropDownList;
using (SqlConnection con2 = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["myconnection"].ConnectionString))
{
con2.Open();
using (SqlCommand cmd1 = new SqlCommand("select distinct DD_ANSWER from table1 where ID= '" + current_quest + "' ", con2))
{
ddl_Answer.DataSource = cmd1.ExecuteReader();
ddl_Answer.DataTextField = "DD_ANSWER";
ddl_Answer.DataValueField = "DD_ANSWER";
ddl_Answer.DataBind();
}
con2.Close();
}
}
하지만 난이 오류 :
여기<asp:TemplateField HeaderText="Answer">
<ItemTemplate>
<asp:Label ID="lblAns" runat="server" Text='<%# Eval("DDL_ANS")%>' Visible="false"></asp:Label>
<asp:DropDownList ID="ddl_Answer" runat="server">
</asp:DropDownList>
</ItemTemplate>
코드 뒤에입니다 개체 참조가
ddl_Answer.Items.FindByValue((e.Row.FindControl("lblAns") as Label).Text).Selected = true;
감사
if 문 끝 부분에 누락 된 괄호가 있습니다. –
마지막 줄을 여러 줄로 구분하고 각 줄을 디버거로 단계별 실행하십시오. –
고마워요.하지만 문제가 있습니다. 코드를 붙여 넣을 때 대괄호를 추가하는 것을 잊어 버렸습니다. – moe