2010-11-18 21 views
0

ızgara görünümünde açılan liste için sorun var, seçilen indeksi değişti ateş değil. Satır verideyken açılan listenin verilerini bağlarım. Ama verileri seçtiğimde, seçilen indeks değişmedi. Başka bir aşağıya açılan liste, liste listesinin ateşleme indeksini hangi sabit kodla değiştirdiğini değiştirdi. Bu konuda herhangi bir fikir, lütfen yardım edin. Aşağıda kod ve ön uç kodu.ızgara görünümü ızgara görünümü değil yangın seçim endeksi

   <ItemTemplate> 
        <asp:DropDownList ID="ddlItem" runat="server" Width="80%" AutoPostBack="true" OnSelectedIndexChanged="ddlPrice_SelectedIndexChanged"></asp:DropDownList> 
       </ItemTemplate> 



       <ItemTemplate> 
        <asp:DropDownList runat="server" ID="ddl" AutoPostBack="true" OnSelectedIndexChanged="ddl_SelectedIndexChanged"> 
         <asp:ListItem Text="Compliant" Value="0" /> 
           <asp:ListItem Text="Other Than Serious" Value="1" /> 
           <asp:ListItem Text="Serious" Value="2" /> 
           <asp:ListItem Text="Critical" Value="3" /> 

        </asp:DropDownList> 
       </ItemTemplate> 

Sub Page_Load Korumalı (As Object ByVal sender System.EventArgs ByVal e As)

Dim oCategoryDetails As New CategoryDetails 

    If Not IsPostBack Then 
     gdCat.DataSource = oCat.Read 
     gdCat.DataBind() 
    End If 

End Sub

Dim ddl As DropDownList 
     ddl = DirectCast(e.Row.FindControl("ddlItem"), DropDownList) 
     If Not ddl Is Nothing Then 
      If oDS.Tables.Item(0).Rows.Count > 0 Then 
       ddl.DataSource = oDS 
       ddl.DataTextField = "ItemName" 
       ddl.DataValueField = "ItemPrice" 
       ddl.DataBind() 
      Else 
       ddl.Visible = False 
      End If 

     End If 

     If Me.IsPostBack Then 

      If e.Row.RowType = DataControlRowType.DataRow Then 
       AddHandler ddl.SelectedIndexChanged, AddressOf ddlPrice_SelectedIndexChanged 
      End If 
     End If 

End Sub

cevap

0

Neden Me.Load kolları yalnızca onu bağladığınızda, If me.IsPostBack numaralı satırı RowDataBound'a eklediniz mi? If Not IsPostBack ? Normalde, aspx işaretlemesine OnSelectedIndexChanged="ddlPrice_SelectedIndexChanged" eklenmesi yeterlidir. Ancak, işleyiciyi RowCreated içinde her PostBack'e ekleyebilirsiniz:

Private Sub gdCat_RowCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles gdCat.RowCreated 
    Select Case e.Row.RowType 
     Case DataControlRowType.DataRow 
      Dim ddlItem as DropDownList = DirectCast(e.Row.FindControl("ddlItem"),DropDownList) 
      AddHandler ddlItem.SelectedIndexChanged, AddressOf ddlPrice_SelectedIndexChanged 
    End Select 
End Sub 
İlgili konular