DiFalco 0 Denunciar post Postado Agosto 17, 2005 galera, tô com um baita pepino nas mãos, é o seguinte: tenho um data grid onde preciso adicionar em RunTime 2 controles conforme dados q me são enviados: 1 DropDownList e 1 TextBox, no DropDownList existem valores q devem ser somados e colocados no TextBox, pois bem, o problema é q quando seleciono um valor DropDownList e faço a leitura do DataGrid para fazer o somatório, ele simplesmente nao acha controle algum na célula correspondente. Segue o Código: Esse é chamado pelo OnItemDataBound e onde adiciono os controles: Public Sub BindGrid(ByVal sender As Object, ByVal e As DataGridItemEventArgs) Dim i As Integer If e.Item.ItemType = ListItemType.Item Or e.Item.ItemType = ListItemType.AlternatingItem Then If e.Item.Cells(1).Text = "0" And Not e.Item.Cells(2).Text = "<b>Sub-Total:</b>" Then e.Item.BackColor = System.Drawing.Color.FromArgb(200, 237, 255) e.Item.Cells(2).Text = "<b>Fator:</b> " & e.Item.Cells(2).Text e.Item.Cells(2).Text = Replace(e.Item.Cells(2).Text, "<b>Fator:</b> <b>Fator:</b> ", "<b>Fator:</b> ") e.Item.Cells(3).Text = "" ElseIf e.Item.Cells(2).Text = "<b>Sub-Total:</b>" Then e.Item.BackColor = System.Drawing.Color.LightGray Dim txtSubTotal As New TextBox txtSubTotal.CssClass = "FORMELEMENTGRID" e.Item.Cells(3).Controls.Add(txtSubTotal) e.Item.Cells(2).HorizontalAlign = HorizontalAlign.Right Else e.Item.Cells(2).Text = " <b>Sub-Fator:</b> " + e.Item.Cells(2).Text e.Item.Cells(2).Text = Replace(e.Item.Cells(2).Text, " <b>Sub-Fator:</b> <b>Sub-Fator:</b> ", " <b>Sub-Fator:</b> ") Dim cboPeso As New DropDownList cboPeso.Items.Insert(0, "0") cboPeso.Items.Insert(1, "1") cboPeso.Items.Insert(2, "2") cboPeso.Items.Insert(3, "3") cboPeso.CssClass = "FORMELEMENT" cboPeso.AutoPostBack = True e.Item.Cells(3).Controls.Add(cboPeso) End If End If End Sub esse é onde faço a varredura para fazer o somatório: Private Sub CalculaSubTotal() Dim CodFator As String Dim i, v As Integer Dim strFatorCampos(3) As String Dim Fator(3) As String Dim Total As Integer Dim myControl As Control strFatorCampos(0) = "Codigo" strFatorCampos(1) = "CodigoSub" strFatorCampos(2) = "Titulo" strFatorCampos(3) = "Peso" Session("dsFator") = Geral.MontaDataSet(strFatorCampos) For v = 0 To dgFatorSubFator.Items.Count - 1 Fator(0) = dgFatorSubFator.Items(v).Cells(0).Text Fator(1) = dgFatorSubFator.Items(v).Cells(1).Text Fator(2) = dgFatorSubFator.Items(v).Cells(2).Text If dgFatorSubFator.Items(v).Cells(1).Text <> "0" Then For Each myControl In dgFatorSubFator.Items(v).Cells(3).Controls If myControl.GetType.ToString = "System.Web.UI.WebControls.DropDownList" Then Fator(3) = CInt(DirectCast(dgFatorSubFator.Items(v).Cells(3).FindControl("cboPeso"), DropDownList).SelectedItem.Value) ElseIf myControl.GetType.ToString = "System.Web.UI.WebControls.TextBox" Then Fator(3) = 0 For x As Integer = 1 To i Fator(3) = CInt(Fator(3)) + CInt(DirectCast(dgFatorSubFator.Items(v - x).Cells(3).FindControl("cboPeso"), DropDownList).SelectedItem.Value) Total = Total + CInt(Fator(3)) Next i = 0 End If Next Else i = i + 1 End If Session("dsFator") = Geral.CarregaDataSet(Fator, Session("dsFator")) Next txtTotal.Text = Total dgFatorSubFator.DataSource = Session("dsFator") dgFatorSubFator.DataBind() Session("dsFator") = Nothing End Sub se alguém puder me ajudar eu agradeço... Compartilhar este post Link para o post Compartilhar em outros sites
rOcKLoCo 0 Denunciar post Postado Agosto 17, 2005 cara se ele não está encontrando os controles você deverá qdo varrer o datagrid criar novamente os controles dentro dele... senão ele não encontra mesmo...ou seja, mesmo se você ativar algum Evento, antes dele deverá ser populado o datagrid e adicionado os controles... ok?Att,Carlos Compartilhar este post Link para o post Compartilhar em outros sites
DiFalco 0 Denunciar post Postado Agosto 17, 2005 cara se ele não está encontrando os controles você deverá qdo varrer o datagrid criar novamente os controles dentro dele... senão ele não encontra mesmo... ou seja, mesmo se você ativar algum Evento, antes dele deverá ser populado o datagrid e adicionado os controles... ok? Att, Carlos <{POST_SNAPBACK}> tá.. entendi.. mas se eu popular o DataGrid novamente, eu nao vou perder os dados q eu coloquei nas DropDownLists nao vao ser perdidos ????? Compartilhar este post Link para o post Compartilhar em outros sites
rOcKLoCo 0 Denunciar post Postado Agosto 17, 2005 não, pois vai estar no ViewState... ai na hora q ele recria... ele já recupera o valor definido...entendeu?Att,Carlos Compartilhar este post Link para o post Compartilhar em outros sites