2017-09-14 5 views
0

내 페이지 (에서 값을 얻기에) conected입니다, GRIDVIEW에서 인덱스를 선택했습니다. 외부 드롭 다운 목록에서 항목을 선택하는 경우 드롭 다운 목록 항목에서 자동으로 변경해야합니다. 나는 변화를 시도했습니다. 나에게 도움을 줄 수 있니? 감사.변경 드롭 다운리스트 번째 DropDownList로이 작업을 수행하는

내 ASPX 페이지를 참조하십시오. (연결에 응답하지 않습니다이 코드)에

<asp:GridView ID="GridView4" runat="server" AutoGenerateColumns="False" 
CellPadding="4" DataKeyNames="Kimlik" GridLines="Horizontal" 
onrowdatabound="GridView4_RowDataBound" ForeColor="#333333" Visible="False"> 
<AlternatingRowStyle BackColor="White" /> 
<Columns> 
    <asp:TemplateField HeaderText="Öd.Nu."> 
     <EditItemTemplate> 
      <asp:TextBox ID="TextBox1x" runat="server" Text='<%# Bind("Kimlik") %>'></asp:TextBox> 
     </EditItemTemplate> 
     <ItemTemplate> 
      <asp:Label ID="Label1x" runat="server" Text='<%# Bind("Kimlik") %>'></asp:Label> 
     </ItemTemplate> 
    </asp:TemplateField> 

    <asp:TemplateField HeaderText="Öğrenci Adı Soyadı"> 
     <EditItemTemplate> 
      <asp:TextBox ID="TextBox2x" runat="server" Text='<%# Bind("OgrenciAdiSoyadi") %>'></asp:TextBox> 
     </EditItemTemplate> 
     <ItemTemplate> 
      <asp:Label ID="Label2x" runat="server" Text='<%# Bind("OgrenciAdiSoyadi") %>'></asp:Label> 
     </ItemTemplate> 
    </asp:TemplateField> 

    <asp:TemplateField HeaderText="Odev Sonucu"> 
     <EditItemTemplate> 
      <asp:TextBox ID="TextBox3x" runat="server"></asp:TextBox> 
     </EditItemTemplate> 
     <ItemTemplate> 
      <asp:DropDownList ID="DropDownList1x" runat="server"> 
      </asp:DropDownList> 
     </ItemTemplate> 
    </asp:TemplateField> 

    <asp:TemplateField HeaderText="Ödev Sonuç Açıklaması"> 
     <EditItemTemplate> 
      <asp:TextBox ID="TextBox4x" runat="server" Text='<%# Bind("SonucAciklama") %>'></asp:TextBox> 
     </EditItemTemplate> 
     <ItemTemplate> 
      <asp:Label ID="Label4x" runat="server" Text='<%# Bind("SonucAciklama") %>'></asp:Label> 
     </ItemTemplate> 
    </asp:TemplateField> 
</Columns> 

<EditRowStyle BackColor="#7C6F57" /> 

<FooterStyle BackColor="#1C5E55" ForeColor="White" Font-Bold="True" /> 
<HeaderStyle BackColor="#1C5E55" Font-Bold="True" ForeColor="White" /> 
<PagerStyle BackColor="#666666" ForeColor="White" HorizontalAlign="Center" /> 
<RowStyle BackColor="#E3EAEB" /> 
<SelectedRowStyle BackColor="#C5BBAF" Font-Bold="True" ForeColor="#333333" /> 
<SortedAscendingCellStyle BackColor="#F8FAFA" /> 
<SortedAscendingHeaderStyle BackColor="#246B61" /> 
<SortedDescendingCellStyle BackColor="#D4DFE1" /> 
<SortedDescendingHeaderStyle BackColor="#15524A" /> 
</asp:GridView> 

답변

0

외부의 인덱스 변경 이벤트는 외부 AutoPostBack="true"를 설정했는지 확인 드롭 다운 코드

protected void OurterDropDown_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    foreach (GridViewRow row in GridView.Rows) 
      { 
       DropDownList innerDropdown = (DropDownList)row.FindControl("innedDropedDOwnID"); 

       innerDropdown .ClearSelection(); //making sure the previous selection has been cleared 
       innerDropdown .Items.FindByValue(OurterDropDown.SelectedValue).Selected = true;    

      } 
} 
+0

나는 그것을 작동하지 않았다. (AutoPostBack Outer 드롭 다운에 대한 사실을 정리하는 것을 잊었습니다.) 문제를 해결할 때 문제가 해결되었습니다. 고마워, 고마워. 나는 이것을 4-5 시간 동안 주었다. 고마워 너무 stackoverflow. (이것은 전복 stackoverflow 경험이다) – ErdincDonmez

0

아래 추가 선정 DropDownList 및 RowDataBound 이벤트에서이 코드를 시도하십시오.

protected void GridView4_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
    // check if your row is not a Header/Footer row 
    if (e.Row.RowType == DataControlRowType.DataRow) 
    { 
     // get Dropdownlist from gridview 
     DropDownList DropDownList1x = e.Row.FindControl("DropDownList1x") as DropDownList; 

     // ddlouter is your outside DropDownList 
     DropDownList1x.Items.FindByValue(ddlOuter.SelectedValue).Selected = true; 
    } 
} 
+0

그것은 나를 위해 무엇을 준다. 나는 이해할 수 없다. (내가이 질문을 보내기 전에 DropDownList를 표 필드에서 채웠습니다.) 1 - 그냥 innerHropDownList를 외곽과 같이 채우고 싶습니다. 2 번 사용자가 내부 DropDownLists를 변경 한 후 테이블을 UPDATE합니다. – ErdincDonmez

+0

답변 해 주셔서 감사합니다. – ErdincDonmez

+0

당신은 * 이해할 수없는 것이 *? – AsifAli72090