GridView не поддерживает вставки новой строки, как, как мы обновить/удалить row.This означает, что Там нет такого BuiltIn функциональность для вставки строки. Очевидно, что для этой проблемы есть обходные пути. Вы можете сказать, что есть событие RowCreated
Событие GridView, однако это событие возникает, когда GridView отображает себя и его вид тесно связан с RowDataBound
.
Самый простой способ получить вставку в новую строку - использовать DetailsView.
DetailsView:
Добавить CommandField внутри <Fields>
секции Подробный вид, как показано ниже:
<asp:DetailsView ID="DetailsView1" runat="server" AllowPaging="True"
AutoGenerateRows="False" DataKeyNames="CustomerID"
DataSourceID="SqlDataSource1" Height="50px" Width="125px">
<Fields>
<asp:BoundField DataField="CustomerID" HeaderText="CustomerID"
SortExpression="CustomerID" />
<asp:BoundField DataField="CompanyName" HeaderText="CompanyName"/>
<asp:BoundField DataField="ContactName" HeaderText="ContactName"/>
<asp:CommandField ShowDeleteButton="False" ShowEditButton="True"
ShowInsertButton="True" />
</Fields>
</asp:DetailsView>
Вы также должны иметь контроль SqlDataSource
, как показано ниже:
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString %>"
InsertCommand="INSERT INTO [Customers] ([CustomerID], [CompanyName], [ContactName]) VALUES (@CustomerID, @CompanyName, @ContactName)" >
<InsertParameters>
<asp:Parameter Name="CustomerID" Type="String" />
<asp:Parameter Name="CompanyName" Type="String" />
<asp:Parameter Name="ContactName" Type="String" />
</InsertParameters>
</asp:SqlDataSource>
Однако, если вы нт использовать сетку View, только используя обходные пути, ниже ссылки стоит посмотреть: http://aspsnippets.com/Articles/Adding-Dynamic-Rows-in-ASP.Net-GridView-Control-with-TextBoxes.aspx