按钮单击时将行附加到Gridview [英] Append rows to Gridview on button click

查看:64
本文介绍了按钮单击时将行附加到Gridview的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

Hello Experts,



我有一个面板,里面有三个texbox和两个下拉菜单。当我点击该面板中的按钮时,它应该将数据添加到下面的网格中。

txt1

txt2

txt3

ddl1

ddl2按钮



按钮单击...将字段添加到下面的网格视图中并清除面板中的texbox允许用户添加更多订单项。



第1行:txt1 txt2 txt3 ddl1 ddl2

第2行:继续



如何实现这一目标?非常感谢你的帮助。

解决方案

下面给出了一个实现相同的例子。

.aspx的代码页

// ---------------------

< asp:Button runat =serverID =btnAddRowsText =Add New Row
onclick =btnAddRows_Click/>
< asp:GridView runat =serverID =grd1AutoGenerateColumns =false>
< Columns>
< asp:BoundField DataField =COL1HeaderText =col1/>
< asp:BoundField DataField =COL2HeaderText =col2/>
< asp:BoundField DataField =COL3HeaderText =col3/>
< / Columns>
< / asp:GridView>



// ---------------------

.cs页面代码



 //  - 要指定为数据源的属性
public DataTable GridData
{
get {
if(ViewState [GridData] == null)
{
DataTable dt = new DataTable(的GridData);
dt.Columns.Add(new DataColumn(COL1));
dt.Columns.Add(new DataColumn(COL2));
dt.Columns.Add(new DataColumn(COL3));
dt.Columns.Add(new DataColumn(COL4));
ViewState [GridData] = dt;
返回dt;
}
else
return(DataTable)ViewState [GridData];

}
set {ViewState [GridData] = value; }
}

// - 添加按钮点击事件
protected void btnAddRows_Click(object sender,EventArgs e)
{
DataRow Dr = GridData。 NEWROW();
博士[COL1] =txt1; //我在这里使用了固定数据但你可以使用你的控制值
Dr [COL2] =txt2; //我在这里使用了固定数据但你可以使用你的控制值
博士[COL3] =ddl1; //我在这里使用了固定数据但你可以使用你的控制值
博士[COL4] =ddl2; //我在这里使用了固定数据但你可以使用你的控制值
GridData.Rows.Add(Dr);
BindGrid();

// ---- CLEAR TEXT BOX& DDL低于

}
// - 网格绑定方法需要调用每个动作(添加/删除)
protected void BindGrid()
{
grd1.DataSource = GridData;
grd1.DataBind();
}
// - 第一次网页绑定页面加载
protected void Page_Load(object sender,EventArgs e)
{
if(!IsPostBack)
{
BindGrid();
}
}


查看本网站





http ://www.aspsnippets.com/Articles/Add-new-Row-to-GridView-on-Button-Click-in-ASPNet.aspx [ ^ ]


http: //www.aspsnippets.com/Articles/Adding-Dynamic-Rows-in-GridView-with-DropDownLists-in-ASP.Net.aspx [ ^ ]

Hello Experts,

I have a panel where there are three texboxes and two dropdowns. When I click on Button in that panel, it should add the data into a Grid below.
txt1
txt2
txt3
ddl1
ddl2 Button

On Button Click... add the fields into a gridview below and clear texboxes in panel and allow user to add more line items.

1st row: txt1 txt2 txt3 ddl1 ddl2
2nd row : continues

How to achieve this? Your help is much appreciated.

解决方案

Below given is an example to achive the same.
Code for .aspx Page
//---------------------

<asp:Button runat="server" ID="btnAddRows" Text="Add New Row"
        onclick="btnAddRows_Click"  />
    <asp:GridView runat="server" ID="grd1" AutoGenerateColumns="false">
    <Columns>
        <asp:BoundField DataField="COL1" HeaderText="col1" />
        <asp:BoundField DataField="COL2" HeaderText="col2"/>
        <asp:BoundField DataField="COL3" HeaderText="col3"/>
    </Columns>
    </asp:GridView>


//---------------------
Code for .cs Page

// -- Property to assign as datasource
public DataTable GridData
   {
       get {
           if(ViewState["GridData"]==null)
           {
               DataTable dt = new DataTable("GridData");
               dt.Columns.Add(new DataColumn("COL1"));
               dt.Columns.Add(new DataColumn("COL2"));
               dt.Columns.Add(new DataColumn("COL3"));
               dt.Columns.Add(new DataColumn("COL4"));
               ViewState["GridData"] = dt;
               return dt;
           }
           else
               return (DataTable)ViewState["GridData"];

       }
       set { ViewState["GridData"] = value; }
   }

   // -- Add button click event
   protected void btnAddRows_Click(object sender, EventArgs e)
   {
       DataRow Dr = GridData.NewRow();
       Dr["COL1"] = "txt1"; // I USED FIXED DATA HERE BUT U CAN USE YOUR CONTROL VALUE
       Dr["COL2"] = "txt2"; // I USED FIXED DATA HERE BUT U CAN USE YOUR CONTROL VALUE
       Dr["COL3"] = "ddl1"; // I USED FIXED DATA HERE BUT U CAN USE YOUR CONTROL VALUE
       Dr["COL4"] = "ddl2"; // I USED FIXED DATA HERE BUT U CAN USE YOUR CONTROL VALUE
       GridData.Rows.Add(Dr);
       BindGrid();

       // ---- CLEAR TEXT BOX & DDL BELOW

   }
   // -- Grid bind method need to call on each action ( add / remove)
   protected void BindGrid()
   {
       grd1.DataSource = GridData;
       grd1.DataBind();
   }
   // -- first time Grid bind on page load
   protected void Page_Load(object sender, EventArgs e)
   {
       if(!IsPostBack)
       {
           BindGrid();
       }
   }


see this website


http://www.aspsnippets.com/Articles/Add-new-Row-to-GridView-on-Button-Click-in-ASPNet.aspx[^]


http://www.aspsnippets.com/Articles/Adding-Dynamic-Rows-in-GridView-with-DropDownLists-in-ASP.Net.aspx[^]


这篇关于按钮单击时将行附加到Gridview的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆