1
A
回答
2
这里有一个例子:http://www.dotnetfunda.com/articles/article180.aspx
它应该很容易把它处理新的记录在上面,而不是在底部的形式。
0
我过去所做的是在数据表顶部添加一个新的空数据行,ID为-1(或者如果字符串ID为“new”或“empty”)。将编辑索引设置为该行并绑定数据。
(快速和肮脏的例子)
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" DataKeyNames="ID"
onrowupdating="GridView1_RowUpdating">
<Columns>
<asp:TemplateField HeaderText="Column 1">
<ItemTemplate>
<asp:Literal ID="litColumn1" Text='<%#Bind("column1") %>' runat="server"></asp:Literal>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtColumn1" Text='<%#Bind("column1") %>' runat="server"></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Column 2">
<ItemTemplate>
<asp:Literal ID="litColumn2" Text='<%#Bind("column2") %>' runat="server"></asp:Literal>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtColumn2" Text='<%#Bind("column2") %>' runat="server"></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Column 3">
<ItemTemplate>
<asp:Literal ID="litColumn3" Text='<%#Bind("column3") %>' runat="server"></asp:Literal>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtColumn3" Text='<%#Bind("column3") %>' runat="server"></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<EditItemTemplate>
<asp:LinkButton ID="saveLink" runat="server" CommandName="update">Save</asp:LinkButton>
</EditItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
而对于后面的代码:
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
Fill_Grid();
}
private void Fill_Grid()
{
//Create new test data source and columns
DataTable dt = new DataTable();
dt.Columns.Add("ID");
dt.Columns.Add("column1");
dt.Columns.Add("column2");
dt.Columns.Add("column3");
//Sample data
DataRow dr = dt.NewRow();
dr["ID"] = 1;
dr["column1"] = "test1.1";
dr["column2"] = "test1.2";
dr["column3"] = "test1.3";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["ID"] = 2;
dr["column1"] = "test2.1";
dr["column2"] = "test2.2";
dr["column3"] = "test2.3";
dt.Rows.Add(dr);
//Empty row at the top
dr = dt.NewRow();
dr["ID"] = -1; //-1 is for new rows only
dt.Rows.InsertAt(dr, 0); //inserting at 0th position of table
//Bind data
GridView1.DataSource = dt;
GridView1.EditIndex = 0;
GridView1.DataBind();
}
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
//Check ID
if (e.Keys[0].ToString() == "-1")
{
//is a new row, insert data
}
else
{
//is an update, save data
}
//Rebind data
Fill_Grid();
}
相关问题
- 1. 功能区控件
- 2. ASP.NET GridView控件rowCreated按钮后,点击功能
- 3. 在GridView控件
- 4. 从GridView控件
- 5. GridView控件
- 6. 在GridView控件
- 7. 从GridView控件
- 8. 在GridView控件
- 9. 在GridView控件
- 10. 在GridView控件
- 11. GridView控件
- 12. GridView控件不能显示图像
- 13. 的Android GridView控件不能从JSON
- 14. SharePoint 2010功能区控件
- 15. 控制硬件功能
- 16. 扩展控件的功能
- 17. ASP.NET GridView/ListView打印功能
- 18. ASP.NET Gridview更新功能
- 19. 启用GridView控件
- 20. GridView控件的AutoPostBack
- 21. Gridview和FileUpload控件
- 22. GridView控件的DoubleClick
- 23. GridView控件:编辑
- 24. GridView控件模板
- 25. 在ASP.NET GridView控件
- 26. ASP.net:在GridView控件
- 27. 自动GridView控件
- 28. Android上的捏缩放/多点触控功能GridView
- 29. 滚动+的LinearLayout + GridView控件.. GridView控件不滚动
- 30. 设置GridView控件的DataSourceID为“”,导致GridView控件失去
其实我很喜欢他显示在页脚构成该行的方法。谢谢! – Craig 2011-12-23 04:15:36