当我点击“增加”按钮时,GridView会自动生成新的一行。这样的代码怎么写(C#)???
请高手指点~~~O(∩_∩)O谢谢
请高手指点~~~O(∩_∩)O谢谢
解决方案 »
- 请教个匿名函数,是在不理解了
- 怎样做到网页打开Excel(服务器上)文件时,不会弹出对话框直接打开???
- 大哥们:在gridview中如何实现鼠标移到某一行旁边就自动显示详细信息?
- ASP.NET网页怎样优化才容易被搜索引擎搜到
- 把一张表中的记录都放在一个数组中,然后怎么把数组中的内容再绑到DataGrid中
- 发邮件的程序问题?强烈要求解答
- web控件可以自动检查浏览器类型?这是什么意思
- 【【【视频+聊天实现技术 谁给指点路啊】】】
- OpenSMTP.Net 发送邮件的问题
- GridView分页问题,有多个DataSet对象时
- Server.MapPath 不支持 URI 格式。
- ===WPF里怎么给图片添加文字===
做法就是在gridview的数据源上加一行,假设你给gridview.datasource赋的值是dt
那就是给dt加一行,dr = dt.Newrow dr(0) = ... dr(1) = ... dt.AddRow(dr)
然后把加了一行后的dt,重新赋给gridview的datasource,然后gridview.databind()
方法二.就是點增加,datatable新增一行,然後gridview再綁定這個新的datatable.
ICollection CreateDataSource()
{
DataTable dt = new DataTable();
DataRow dr;
dt.Columns.Add(new DataColumn("id", typeof(Int32)));
dt.Columns.Add(new DataColumn("text", typeof(string)));
for (int i = 0; i < 6; i++)
{
dr = dt.NewRow();
dr[0] = i;
dr[1] = "列表" + i.ToString();
dt.Rows.Add(dr);
}
DataView dv = new DataView(dt);
return dv;
}
public class GridViewTemplate : ITemplate
{
private DataControlRowType dcrType;
private string columnName;
public GridViewTemplate(DataControlRowType type, string colname)
{
dcrType = type;
columnName = colname;
}
public void InstantiateIn(System.Web.UI.Control container)
{
switch (dcrType)
{
case DataControlRowType.Header:
Literal literal = new Literal();
literal.Text = columnName;
container.Controls.Add(literal);
break;
case DataControlRowType.DataRow:
DropDownList ddl = new DropDownList();
ddl.ID = "dropdownlist";
ddl.AppendDataBoundItems = true;
ddl.Items.Add(new ListItem("-----请选择------", ""));
ddl.Items.Add(new ListItem("AA", "a"));
ddl.Items.Add(new ListItem("BB", "b"));
ddl.Items.Add(new ListItem("CC", "c"));
container.Controls.Add(ddl);
break;
default:
break;
}
}
}
protected void Button1_Click(object sender, EventArgs e)
{
for (int index = 1; index < GridView1.Columns.Count; index++)
{
GridView1.Columns[index].Visible = false;
}
for (int i = 0; i < Convert.ToInt32(DropDownList1.SelectedValue); i++)
{
TemplateField tf = new TemplateField();
tf.ShowHeader = true;
tf.HeaderTemplate = new GridViewTemplate(DataControlRowType.Header, "动态添加列");
tf.ItemTemplate = new GridViewTemplate(DataControlRowType.DataRow, "");
GridView1.Columns.Add(tf);
GridView1.DataSource = CreateDataSource();
GridView1.DataBind();
}
}
dt.Columns.Add("name");
DataRow dr = dt.NewRow();
dr["id"] = "";
dr["name"] = "";
dt.Rows.Add(dr); this.GridView1.DataSource = dt;
this.GridView1.DataBind();
GridView1.EditIndex =dt.Rows.Cunt -1;
dt.Dispose();
http://topic.csdn.net/u/20090115/11/0674c008-c204-428a-a3f4-1bc726cd0fae.html
<asp:TemplateField HeaderText="产品名称">
<FooterTemplate>
<asp:TextBox ID="ProcessPriceA" onblur="price();" runat="server"></asp:TextBox>
</FooterTemplate>
</asp:TemplateField>
后台按钮事件
protected void add_Click(object sender, EventArgs e)
{
GridView1.ShowFooter = true;
GridView1.DataSource = DT;
GridView1.DataBind();
}
把footer模板显示出来
然后在footer模板列中做个确定按钮把新增的数据填写到数据源中,重新绑定下gridview,就ok了!
当然这个过程没那么简单,需要代码,可以找我!
给你个例子,判断是新增还是更新。注意AddRow值
protected void GridView1_Updating(object sender, GridViewUpdateEventArgs e)
{
if (AddRow == true)
{
string sSql = "insert into *** values(*****)"; Grid.ExeSql(sSql); }
else
{
string sSql = "update *** set ****'"; Grid.ExeSql(sSql); }
AddRow = false;
}
DataSet ds = new DataSet();
ds = ....
DataTable dt = ds.Tables[0];
if (dt.Rows.Count >= 0)
{
DataRow dr = dt.NewRow();
dt.Rows.Add(dr);
}
this.GridView1.DataSource = dt;
GridView1.DataBind();
http://files.cnblogs.com/huangjianhuakarl/Gridview.rar