使用jquery将行添加到gridview

最初我的gridview与一个数据绑定,当用户点击添加更多按钮,然后我通过jquery一次添加一行到gridview。 我的代码工作正常,但问题是当我从客户端通过jquery向gridview添加5行时,当我尝试从服务器端迭代这些行时, GridView1.Rows.Count总是返回一行。 所以我的问题是,当从客户端通过jquery添加行时,我无法从服务器端迭代行集合。 所以在这里我给出了我的整个代码,并告诉我我能做什么,因此我将能够通过jquery添加这些行后从服务器端读取所有行。

ASPX

  $(document).ready(function () { $("#datepicker").datepicker({ dateFormat: 'dd/mm/yy', showOn: "both", buttonImageOnly: true, buttonImage: "images/date_picker.gif", buttonText: "Calendar" }); $('#').bind('click', function (event) { var $grid = $('#'); var $row = $grid.find('tr:last').clone().appendTo($grid); $row.find('select')[0].selectedIndex = 0; return false; }); });  
--Select-- India UK USA Germany --Select-- Kolkata Mumbai Delhi Madras


ServerSide代码

 protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { DataTable dt = new DataTable(); dt.Columns.Add("ID", typeof(string)); DataRow dr = dt.NewRow(); dr["ID"] = ""; dt.Rows.Add(dr); GridView1.DataSource = dt; GridView1.DataBind(); } } protected void Button1_Click(object sender, EventArgs e) { StringBuilder sb=new StringBuilder(); //HtmlTable table = (HtmlTable)rpt.Items[0].FindControl("tblSample"); for (int i = 0; i <= GridView1.Rows.Count - 1; i++) { string country = ((DropDownList)GridView1.Rows[i].FindControl("ddlCountry")).SelectedItem.Text; string city = ((DropDownList)GridView1.Rows[i].FindControl("ddlCity")).SelectedItem.Text; sb.Append("Country :- " + country + " City :- " + city); } txtData.Text = sb.ToString(); } 

您无法读取从javascript添加的服务器代码中的行。 相反,您需要添加服务器代码中的行。 因为点击按钮会发回邮件到服务器。 javascript代码上添加的行不会使用viewstate呈现。 它不会添加到viewstate上。 所以在回发它不会呈现。 因此无法在javascript上添加它。 它只能用于显示目的。 您可以使用ajax部分回发来执行此类操作。 它完成了更新面板及其触发过程。

使用此URL获取类模型的详细信息