84 messaggi dal 04 marzo 2012
Ciao,
ho un problemino nel quale mi sto perdendo, ho una gridview dove è stata riempita con dei valori le prime colonne, Es. id, cognome, nome, poi ho altre due colonne importo e banca
Il campo banca è una dropdwonlist che riempio durante il Rowdatabound come si vede sotto, poi se esiste una tabella con i dati salvati li ripropongo.
La stessa cosa dovrei fare per il campo Importo, che è un text box (mytxt) ma quando cerco di riempirlo mi viene segnalato il seguente errore:
System.NullReferenceException: 'Riferimento a un oggetto non impostato su un'istanza di oggetto.'


Cosa sbaglio? ringrazio anticipatamente.


<asp:GridView ID="dgvDipendenti" runat="server" AutoGenerateColumns="False" >
<Columns>
<asp:BoundField DataField="IDDipendente" HeaderText="IDDipendente" SortExpression="IDDipendente" ItemStyle-Width="150" />
<asp:BoundField DataField="Cognome" HeaderText="Cognome" SortExpression="Cognome" ItemStyle-Width="150" />
<asp:BoundField DataField="Nome" HeaderText="Nome" SortExpression="Nome" ItemStyle-Width="150"/>
<asp:TemplateField HeaderText="Importo" ItemStyle-Width="150">
<ItemTemplate>
<asp:TextBox ID="txtImporto" runat="server"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Banca" ItemStyle-Width="150">
<ItemTemplate>
<asp:DropDownList ID="Banca" runat="server" AutoPostBack="True" >
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>



Protected Sub dgvDipendenti_RowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs) Handles dgvDipendenti.RowDataBound

Dim dati() As String

If e.Row.RowType = DataControlRowType.DataRow Then
Try

Dim connectionString = ConfigurationManager.ConnectionStrings("MN_HTsolutionsConnectionString").ConnectionString
Dim myDrop As DropDownList
Dim mytxt As TextBox

Using conn = New SqlConnection(connectionString)
conn.Open()
Using cmd = conn.CreateCommand()

cmd.CommandText = "SELECT Bank FROM MA_Banks Where MA_Banks.IsACompanyBank = '1' And Disabled = '0' "
Using reader = cmd.ExecuteReader()
While reader.Read()
'Dichiaro campo di tipo DropDownList
myDrop = CType(e.Row.FindControl("Banca"), DropDownList)


'Riempio la DropDownList con i valori recuperati dalla tabella
myDrop.Items.Add(New ListItem(reader("Bank")))

End While




'Se sono in modifica recupero l'oggetto salvato
If Session.Item("Stato") = "Modifica" Then
dati = classeDipendenti.CaricaDatiBonifico(e.Row.DataItem("IDDipendente"))

' If Not IsDBNull(dati(1)) Or dati(1) <> 0 Then
If Not String.IsNullOrEmpty(dati(0)) Then
myDrop.SelectedValue = dati(0)
End If
If Not String.IsNullOrEmpty(dati(1)) Then
mytxt = CType(e.Row.FindControl("Importo"), TextBox)
mytxt.Text = CDbl(dati(1))
End If

End If
End Using
End Using
End Using


Catch ex As Exception
ClsFileLog.ScriviLog(ex.Message, Session.Item("User"))
End Try
End If
End Sub
84 messaggi dal 04 marzo 2012
Scusate ho risolto come sempre era una stupidata, di seguito lascio il codice corretto, però mi sorge un altro problema di formattazione, il valore presente nella textbox chiamata mytxt non viene formattato come un numero con separatori migliaia e virgola. Come posso fare?



Protected Sub dgvDipendenti_RowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs) Handles dgvDipendenti.RowDataBound

Dim dati() As String

If e.Row.RowType = DataControlRowType.DataRow Then
Try

Dim connectionString = ConfigurationManager.ConnectionStrings("MN_HTsolutionsConnectionString").ConnectionString
Dim myDrop As DropDownList
Dim mytxt As TextBox

Using conn = New SqlConnection(connectionString)
conn.Open()
Using cmd = conn.CreateCommand()

cmd.CommandText = "SELECT Bank FROM MA_Banks Where MA_Banks.IsACompanyBank = '1' And Disabled = '0' "
Using reader = cmd.ExecuteReader()
While reader.Read()
'Dichiaro campo di tipo DropDownList
myDrop = CType(e.Row.FindControl("Banca"), DropDownList)

myDrop.Items.Add(New ListItem(reader("Bank")))

End While


mytxt = CType(e.Row.FindControl("Importo"), TextBox)


If Session.Item("Stato") = "Modifica" Then
dati = classeDipendenti.CaricaDatiBonifico(e.Row.DataItem("IDDipendente"))

If Not String.IsNullOrEmpty(dati(0)) Then
myDrop.SelectedValue = dati(0)
End If
If Not String.IsNullOrEmpty(dati(1)) Then
mytxt.Text = String.Format("{0:N2}", dati(1))
End If

End If
End Using
End Using
End Using


Catch ex As Exception
ClsFileLog.ScriviLog(ex.Message, Session.Item("User"))
End Try
End If
End Sub
84 messaggi dal 04 marzo 2012
Scusate nuovamente, ho trovato i metodo corretto anche per la formattazione.

mytxt.Text = Format(CDbl(dati(1)), "#,##0.00")

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.