0
我有一個jqgrid(版本4.6.0.0),我在一個數量列的頁腳上顯示授予總數。如果用戶插入新行或刪除行,則應重新計算總量,並在頁腳上顯示它。它工作正常,直到網格爲空(沒有任何行),我的意思是如果用戶刪除網格上的最後一行,代碼仍然計算正確的金額(0),但頁腳仍然顯示它的總數量,而不是0。 這裏是我的代碼:如果行爲空,jqgrid footervalue不正確
protected void Jqgrid1_DataRequested(object sender, JQGridDataRequestedEventArgs e)
{
DataSet _ds = (DataSet)Session["myApplicationForm"];
DataTable dt1 = _ds.Tables[1] as DataTable;
CalcVoucherAmt(dt1);
}
private void CalcVoucherAmt(DataTable _dt)
{
decimal amtSum = 0;
foreach (DataRow dr in _dt.Rows)
{
amtSum += obj2decimal(dr["DETAIL_AMT"]);
}
Jqgrid1.Columns.FromDataField("DETAIL_AMT").FooterValue = amtSum.ToString();
}
protected void Jqgrid1_RowAdding(object sender, Trirand.Web.UI.WebControls.JQGridRowAddEventArgs e)
{
DataSet _ds = (DataSet)Session["myApplicationForm"];
DataTable dt1 = _ds.Tables[1] as DataTable;
dt1.PrimaryKey = new DataColumn[] { dt1.Columns["DATA_SEQ"] };
DataRow row = dt1.NewRow();
row["UNIQ_KEY"] = System.Guid.NewGuid().ToString();
row["DETAIL_AMT"] = amt; //user input
dt1.Rows.InsertAt(row, dt1.Rows.Count);
Session["myApplicationForm"] = _ds;
Jqgrid1.DataSource = dt1;
Jqgrid1.DataBind();
}
protected void Jqgrid1_RowEditing(object sender, Trirand.Web.UI.WebControls.JQGridRowEditEventArgs e)
{
DataSet _ds = (DataSet)Session["myApplicationForm"];
DataTable dt1=_ds.Tables[1] as DataTable;
dt1.PrimaryKey = new DataColumn[] { dt1.Columns["DATA_SEQ"] };
DataRow rowEdited = dt1.Rows.Find(e.RowKey);
rowEdited["DETAIL_AMT"] = amt; //user input
Session["myApplicationForm"] = _ds;
Jqgrid1.DataSource = dt1;
Jqgrid1.DataBind();
}
protected void Jqgrid1_RowDeleting(object sender, JQGridRowDeleteEventArgs e)
{
DataSet _ds = (DataSet)Session["myApplicationForm"];
DataTable dt1 = _ds.Tables[1] as DataTable;
dt1.PrimaryKey = new DataColumn[] { dt1.Columns["DATA_SEQ"] };
DataRow rowToDelete = dt1.Rows.Find(e.RowKey);
if (rowToDelete != null)
dt1.Rows.Remove(rowToDelete);
}
和ASPX,代碼
<cc1:JQGrid ID="Jqgrid1" runat="server" Height="100%" Width="100%" AutoWidth="true" PagerSettings-PageSizeOptions="[]"
OnRowAdding="Jqgrid1_RowAdding"
OnRowEditing="Jqgrid1_RowEditing"
OnDataRequested="Jqgrid1_DataRequested"
OnRowDeleting="Jqgrid1_RowDeleting">
</cc1:JQGrid>
什麼想法?
我發佈了原始代碼底部的添加/刪除代碼。你可以注意到我使用了asp.net webform,所以reloadGrid在這裏無法使用。希望你能給我一些建議。 – brandon 2014-12-05 14:25:42
@brandon:你使用了你問題的'jqgrid'標籤。 jqGrid是**純JavaScript **解決方案。如果您使用一些ASP.NET WebForm,那麼您直接間接生成一些包裝。您應該打開HTML頁面的源代碼並查看您生成的JavaScript代碼。如果您想使用相同語言與其他人交談,則應使用JavaScript術語。 ''var grid = $(「#<%= Jqgrid1.ClientID%>」);''會爲你提供網格的jQuery包裝(參見[documentation]](http://www.trirand.net/documentation/aspnet/_2s90nukak .htm))和'grid.trigger(「reloadGrid」,[{current:true}]);'會重新加載。 – Oleg 2014-12-05 15:15:04
我正在使用jqGrid for asp.net,它是一個webform控件,一個商業版本。 [www.trirand.net](http://www.trirand.net/demo/aspnet/webforms/jqgrid)。可能是我發佈的問題是一個錯誤? – brandon 2014-12-06 02:12:48