J'utilise le gridview pour gérer les données, lorsque la base de données ne contient pas les données dont elle a besoin d'être saisie en premier. pour entrer des données la première fois que j'utilise detailsview que je mets dans EmptyDataTemplate du gridview. ? comment accéder à la zone de texte de detailview qui est en EmptyDataTemplate de gridview je reçois toujours l'erreur référence nullinsérer une nouvelle ligne avec detailsview sur EmptyDataTemplate de gridview
<EmptyDataTemplate>
<asp:DetailsView ID="DetailsView3" runat="server" AutoGenerateRows="False" DataKeyNames="IDKOREKSIREFUND" DataSourceID="KoreksiRefundObjectDataSource" DefaultMode="Insert" Height="50px" Width="125px" >
<Fields>
<asp:BoundField DataField="IDKOREKSIREFUND" HeaderText="IDKOREKSIREFUND" InsertVisible="False" ReadOnly="True" SortExpression="IDKOREKSIREFUND" />
<asp:TemplateField HeaderText="NILAI" SortExpression="NILAI">
<InsertItemTemplate>
<asp:TextBox ID="dvNilaiTextBox" runat="server" Text='<%# Bind("NILAI") %>'></asp:TextBox>
</InsertItemTemplate>
</asp:TemplateField>
<asp:CommandField ShowInsertButton="True" />
</Fields>
</asp:DetailsView>
</EmptyDataTemplate>
</asp:GridView>
protected void KoreksiRefundObjectDataSource_Inserting(object sender, ObjectDataSourceMethodEventArgs e)
{
if (KoreksiGridView.Rows.Count == 0)
// We are inserting through the DetailsView in the EmptyDataTemplate
{
TextBox NewNilai1 = (TextBox)KoreksiGridView.FooterRow.Controls[0].FindControl("dvNilaiTextBox");
decimal? NILAI1 = null;
if (!string.IsNullOrEmpty(NewNilai1.Text))
NILAI1 = Convert.ToDecimal(NewNilai1.Text);
e.InputParameters["NILAI"] = NewNilai1.Text;
return;
}
// Programmatically reference Web controls in the inserting interface...
TextBox NewNilai= (TextBox)KoreksiGridView.FooterRow.FindControl("NewNilaiTextBox");
decimal? NILAI = null;
if (!string.IsNullOrEmpty(NewNilai.Text))
NILAI = Convert.ToDecimal(NewNilai.Text);
e.InputParameters["NILAI"] = NewNilai.Text;
}
Quelle ligne renvoie l'exception NullReference? –
TextBox NewNilai1 = (TextBox) KoreksiGridView.FooterRow.Controls [0] .FindControl ("dvNilaiTextBox"); – bazcava
mettez-le dans FooterTemplate. – AsifAli72090