Asp.net RowDataBound命令错误
两个按钮的错误相同。我认为这是部分Asp.net RowDataBound命令错误,asp.net,gridview,Asp.net,Gridview,两个按钮的错误相同。我认为这是部分RowDataBound命令: protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { } 错误代码: 对象引用未设置为对象的实例。描述:安 执行当前网站时发生未处理的异常 要求请查看堆栈跟踪以了解有关堆栈的更多信息 错误及其在代码中的起源 例外情况详情: System.NullReferenceException:对象引用未设置为实例 指一个物体 Defau
RowDataBound
命令:
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
}
错误代码:
对象引用未设置为对象的实例。描述:安
执行当前网站时发生未处理的异常
要求请查看堆栈跟踪以了解有关堆栈的更多信息
错误及其在代码中的起源
例外情况详情:
System.NullReferenceException:对象引用未设置为实例
指一个物体
Default.aspx
<asp:GridView ID="GridView1"
runat="server"
DataSourceID="SqlDataSource1"
AutoGenerateColumns="false"
DataKeyNames="idt"
OnDataBound="GridView1_RowDataBound"
showfooter="true">
<Columns>
<asp:BoundField DataField="idt" HeaderText="idt" Readonly="true" SortExpression="idt" />
<asp:BoundField DataField="datetime" HeaderText="datetime" SortExpression="datetime" />
<asp:TemplateField SortExpression="col1">
<HeaderTemplate>
<asp:TextBox ID="TextBoxHeadercol1" text="col1" runat="server" MaxLength="40" />
</HeaderTemplate>
<EditItemTemplate>
<asp:TextBox ID="txt1" runat="server" Text='<%# Eval("col1") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lbl1" runat="server" Text='<%# Bind("col1") %>'></asp:Label>
</ItemTemplate>
<FooterTemplate>
<asp:TextBox ID="TextBoxFootercol1" text="col1" runat="server" MaxLength="40" />
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField SortExpression="col2">
<HeaderTemplate>
<asp:TextBox ID="TextBoxHeadercol2" text="col2" runat="server" MaxLength="40" />
</HeaderTemplate>
<EditItemTemplate>
<asp:TextBox ID="txt2" runat="server" Text='<%# Eval("col2") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lbl2" runat="server" Text='<%# Bind("col2") %>'></asp:Label>
</ItemTemplate>
<FooterTemplate>
<asp:TextBox ID="TextBoxFootercol2" text="col2" runat="server" MaxLength="40" />
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField SortExpression="col3">
<HeaderTemplate>
<asp:TextBox ID="TextBoxHeadercol3" text="col3" runat="server" MaxLength="40" />
</HeaderTemplate>
<EditItemTemplate>
<asp:TextBox ID="txt3" runat="server" Text='<%# Eval("col3") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lbl3" runat="server" Text='<%# Bind("col3") %>'></asp:Label>
</ItemTemplate>
<FooterTemplate>
<asp:TextBox ID="TextBoxFootercol3" text="col3" runat="server" MaxLength="40" />
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField>
<HeaderTemplate>
<asp:LinkButton OnClick="btninsert_Click" ID="btninsert" runat="server" >Insert Into</asp:LinkButton>
</HeaderTemplate>
<FooterTemplate>
<asp:TextBox ID="TextBoxAllTotal" Text="Total" runat="server" MaxLength="40" />
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField>
<FooterTemplate>
<asp:LinkButton OnClick="btntotal_Click" ID="btntotal" runat="server" >Total</asp:LinkButton>
</FooterTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:SqlDataSource
id="SqlDataSource1"
ConnectionString="<%$ ConnectionStrings:connone %>"
SelectCommand="SELECT * FROM [test];
InsertCommand="INSERT INTO [test] ([datetime],[col1],[col2],[col3]) VALUES (@datetime,@col1,@col2,@col3);"
runat="server">
<InsertParameters>
<asp:Parameter Name="datetime" Type="DateTime" />
<asp:Parameter Name="col1" Type="String" />
<asp:Parameter Name="col2" Type="String" />
<asp:Parameter Name="col3" Type="String" />
</InsertParameters>
</asp:SqlDataSource>
插入
全部的
RowDataBound
是空的,那么为什么您认为它导致了NullReferenceException
?我认为指向该行的指针不正确。两个按钮都会出现相同的错误。您无法从btntotal\u单击访问EditItemTemplate
中的文本框。仅当栅格处于编辑模式时。因此testxt1.Text
会导致异常。如果我用标签翻转文本框?标签到gridview的输出将混乱。是否有其他模板用于文本框?
<asp:GridView ID="GridView1"
runat="server"
DataSourceID="SqlDataSource1"
AutoGenerateColumns="false"
DataKeyNames="idt"
OnDataBound="GridView1_RowDataBound"
showfooter="true">
<Columns>
<asp:BoundField DataField="idt" HeaderText="idt" Readonly="true" SortExpression="idt" />
<asp:BoundField DataField="datetime" HeaderText="datetime" SortExpression="datetime" />
<asp:TemplateField SortExpression="col1">
<HeaderTemplate>
<asp:TextBox ID="TextBoxHeadercol1" text="col1" runat="server" MaxLength="40" />
</HeaderTemplate>
<EditItemTemplate>
<asp:TextBox ID="txt1" runat="server" Text='<%# Eval("col1") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lbl1" runat="server" Text='<%# Bind("col1") %>'></asp:Label>
</ItemTemplate>
<FooterTemplate>
<asp:TextBox ID="TextBoxFootercol1" text="col1" runat="server" MaxLength="40" />
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField SortExpression="col2">
<HeaderTemplate>
<asp:TextBox ID="TextBoxHeadercol2" text="col2" runat="server" MaxLength="40" />
</HeaderTemplate>
<EditItemTemplate>
<asp:TextBox ID="txt2" runat="server" Text='<%# Eval("col2") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lbl2" runat="server" Text='<%# Bind("col2") %>'></asp:Label>
</ItemTemplate>
<FooterTemplate>
<asp:TextBox ID="TextBoxFootercol2" text="col2" runat="server" MaxLength="40" />
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField SortExpression="col3">
<HeaderTemplate>
<asp:TextBox ID="TextBoxHeadercol3" text="col3" runat="server" MaxLength="40" />
</HeaderTemplate>
<EditItemTemplate>
<asp:TextBox ID="txt3" runat="server" Text='<%# Eval("col3") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lbl3" runat="server" Text='<%# Bind("col3") %>'></asp:Label>
</ItemTemplate>
<FooterTemplate>
<asp:TextBox ID="TextBoxFootercol3" text="col3" runat="server" MaxLength="40" />
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField>
<HeaderTemplate>
<asp:LinkButton OnClick="btninsert_Click" ID="btninsert" runat="server" >Insert Into</asp:LinkButton>
</HeaderTemplate>
<FooterTemplate>
<asp:TextBox ID="TextBoxAllTotal" Text="Total" runat="server" MaxLength="40" />
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField>
<FooterTemplate>
<asp:LinkButton OnClick="btntotal_Click" ID="btntotal" runat="server" >Total</asp:LinkButton>
</FooterTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:SqlDataSource
id="SqlDataSource1"
ConnectionString="<%$ ConnectionStrings:connone %>"
SelectCommand="SELECT * FROM [test];
InsertCommand="INSERT INTO [test] ([datetime],[col1],[col2],[col3]) VALUES (@datetime,@col1,@col2,@col3);"
runat="server">
<InsertParameters>
<asp:Parameter Name="datetime" Type="DateTime" />
<asp:Parameter Name="col1" Type="String" />
<asp:Parameter Name="col2" Type="String" />
<asp:Parameter Name="col3" Type="String" />
</InsertParameters>
</asp:SqlDataSource>