我有问题。我找不到任何向gridview添加新行的选项,只能删除,选择或编辑。
谷歌抛出了很多例子,但所有例子对我来说都是同样的错误:
DataSource和DataSourceID都在'GridView1'上定义。去掉 一个定义。
由于我在PageLoad上从数据库填充了GridView,因此已经有DataSource绑定到它(SQLDataSource)。
如果我尝试根据此tut添加新行: http://www.vkinfotek.com/gridview/gridview-footertemplate.html 或这个: http://matifnadeem.blogspot.com/2013/05/adding-dynamic-rows-in-aspnet-gridview.html 或这个: http://www.codeproject.com/Articles/467788/Dynamically-adding-and-deleting-rows-from-ASP-NET
我收到错误,因为所有教程都使用空的gridView,启动时没有任何数据。
这位用户在这里问了同样的问题:New row in ASP.NET GridView Control但是最后一个看起来很有希望的链接已经不再有效了.Shan的答案看起来也不错,但对我来说还不够:(
答案 0 :(得分:0)
它要求你做到这一点。您似乎已在GridView1上设置了DataSourceID和DataSource属性。删除其中一个。 DataSourceID倾向于在声明性标记中设置,并且DataSource倾向于在代码隐藏中设置。因为您正在使用SqlDataSource,所以删除在代码隐藏中显式设置DataSource属性的所有行。
// Create SQLDataSource.
SqlDataSource sqlDataSource = new SqlDataSource();
sqlDataSource.ID = "SqlDataSource123";
//Bind SQLDataSource to GridView
GridView1.DataSource = sqlDataSource;
GridView1.DataBind();
答案 1 :(得分:0)
可能是因为您为Datasource
GridView
页面来源中的一个像
DataSourceID="SqlDataSource"
和codeBehind中的另一个
GridView.DataSource= //Your Datasource
只使用一个DataSource
并再次关注教程。
- 希望它有所帮助。
答案 2 :(得分:0)
我找到的问题最简单的选择是: http://www.youtube.com/watch?v=vZIOI136IKY
简而言之:将控件添加到GridView的页脚,然后添加后台代码:
protected void lbInsert_Click(object sender, EventArgs e)
{
SqlDataSource1.InsertParameters["Name"].DefaultValue = ((TextBox)GridView1.FooterRow.FindControl("tbName")).Text;
SqlDataSource1.InsertParameters["Description"].DefaultValue = ((TextBox)GridView1.FooterRow.FindControl("tbdesc")).Text;
SqlDataSource1.InsertParameters["Location"].DefaultValue = ((TextBox)GridView1.FooterRow.FindControl("tbLoc")).Text;
SqlDataSource1.InsertParameters["URL"].DefaultValue = ((TextBox)GridView1.FooterRow.FindControl("tbURL")).Text;
SqlDataSource1.InsertParameters["EnteredUser"].DefaultValue = ((TextBox)GridView1.FooterRow.FindControl("tbUser")).Text;
SqlDataSource1.Insert();
}
最后在网页中调用OnClick事件:
<FooterTemplate>
<asp:LinkButton OnClick="lbInsert_Click" ID="lbInsert" runat="server">Insert</asp:LinkButton>
</FooterTemplate>
有关更多信息,请观看youtube视频,家伙解释说它真的很棒!