我正在制作ASP.net应用程序,我希望在那里有某种表。我尝试使用Grindview,但是当我尝试添加第二行(来自代码)时,第二行替换第一行。
这是代码:
DataTable dt = new DataTable();
if (dt.Columns.Count == 0)
{
dt.Columns.Add("thing", typeof(string));
dt.Columns.Add("thing2", typeof(string));
}
DataRow NewRow = dt.NewRow();
NewRow[0] = label1.Text;
NewRow[1] = label2.Text;
dt.Rows.Add(NewRow);
GridView1.DataSource = dt;
GridView1.DataBind();
我期待Gridview有2行和按钮,每次点击都会为你提供新行。
答案 0 :(得分:0)
我不知道你究竟要求或试图做什么,但这可能会有所帮助
protected void Button1_Click(object sender, EventArgs e)
{
DataTable dt = new DataTable();
if (dt.Columns.Count == 0)
{
dt.Columns.Add("nameofcolumn1", typeof(string));
dt.Columns.Add("nameofcolumn2", typeof(string));
dt.Columns.Add("nameofcolumn3", typeof(string));
}
DataRow NewRow = dt.NewRow();
NewRow[0] = value1;
NewRow[ 1] = value2;
dt.Rows.Add(NewRow);
GridView1.DataSource = dt;
GridViewl.DataBind();
}
答案 1 :(得分:0)
您可以使用循环添加行,您可以在其中创建行,添加内容,然后将行添加到数据表中。
DataTable dt = new DataTable();
if (dt.Columns.Count == 0)
{
dt.Columns.Add("thing", typeof(string));
dt.Columns.Add("thing2", typeof(string));
}
for(int i = 0; i < 3; i++)
{
DataRow dr = dt.NewRow();
dr[0] = "foo";
dr[1] = "bar";
dt.Rows.Add(dr);
}
然后将数据表绑定到GridView:
GridView1.DataSource = dt;
GridViewl.DataBind();
答案 2 :(得分:0)
如果您的前端HTML asp.net代码定义了gridview的样式(这里是一个示例):
<asp:GridView ID="grvModel" runat="server" AlternatingRowStyle-BackColor="#eeeeee" BackColor="#aaccff" AutoGenerateColumns="false">
<Columns>
<asp:TemplateField >
<ItemTemplate>
<asp:Button id="btnDel" CommandName="Delete" OnClientClick="btnDel_click" runat="server"Text="Delete" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField >
<ItemTemplate>
<asp:TextBox runat="server" ID="lblWrite" Text='write here' />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
然后你所要做的就是创建一个List<>
对象并将其绑定到你的gridView,如果你想添加一些东西,只需添加到列表并再次绑定它(她的例子就是一个例子) ):
List<aClass> classList;
protected void BindFirstTime(object sender, EventArgs e)
{
classList= new List<aClass>();
classList.Add(new aClass("one"));
classList.Add(new aClass("two"));
Grv.DataSource = classList;
Grv.DataBind();
}
protected void AddObject(object sender, EventArgs e)
{
classList.Add(new aClass("three or more !"));
Grv.DataSource = classList;
Grv.DataBind();
}
这对我来说很简单,希望它有所帮助。