0
當數據庫不包含需要首先輸入的數據時,我使用gridview來管理數據。在我第一次使用detailsview的時候輸入數據,我把它放在gridview的EmptyDataTemplate中。 ? 如何訪問的DetailView的文本框,這是在GridView的EmptyDataTemplate我總是得到錯誤空引用在gridview的EmptyDataTemplate中插入新行並使用detailview
<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;
}
哪一行會拋出NullReference異常? –
TextBox NewNilai1 =(TextBox)KoreksiGridView.FooterRow.Controls [0] .FindControl(「dvNilaiTextBox」); – bazcava
將它放在FooterTemplate中。 – AsifAli72090