Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript代码赢得';无法在gridview中回发后运行_Javascript_C#_Jquery_Asp.net_Gridview - Fatal编程技术网

Javascript代码赢得';无法在gridview中回发后运行

Javascript代码赢得';无法在gridview中回发后运行,javascript,c#,jquery,asp.net,gridview,Javascript,C#,Jquery,Asp.net,Gridview,单击位于GridView页脚内的按钮时,下面的代码在GridView中生成一行 我使用JavaScript在网格视图上进行了一些计算,以获得总量和净总量 但问题是,当我向网格添加新行时,计算值将从网格视图中消失 在添加行之前 添加行之后。 JavaScript代码 $(document).ready(function () { function multInputs() { var $mult = 0; var $multNe

单击位于GridView页脚内的按钮时,下面的代码在GridView中生成一行

我使用JavaScript在网格视图上进行了一些计算,以获得总量和净总量

但问题是,当我向网格添加新行时,计算值将从网格视图中消失

在添加行之前

添加行之后。

JavaScript代码

    $(document).ready(function () {
       function multInputs() {
           var $mult = 0;
           var $multNet = 0;
           var $multGrand = 0;
           $("tr.txtMult").each(function () {
               var $UnitPrice = $('.UnitPrice', this).val();
               var $Quantity = $('.Quantity', this).val();
               var $Discount = $('.Discount', this).val();
               var $total = (($UnitPrice) * ($Quantity));
               var $Nettotal = (($UnitPrice) * ($Quantity) - ($Discount) * ($Quantity));

               $mult += $total;
               $multNet += $Nettotal;
           });

           $("tr.txtMult").each(function () {
               var $UnitPrice = $('.UnitPrice', this).val();
               var $Quantity = $('.Quantity', this).val();
               var $Discount = $('.Discount', this).val();
               var $total = (($UnitPrice) * ($Quantity));
               var $Nettotal = (($UnitPrice) * ($Quantity) - ($Discount) * ($Quantity));

               $('.multTotal', this).text(parseFloat($total).toFixed(2));
               $('.multNet', this).text(parseFloat($Nettotal).toFixed(2));

           });
           $(".lblGrandAmount").text(parseFloat($mult).toFixed(2));
           $(".lblNetTotal").text(parseFloat($multNet).toFixed(2));
       }                          

    $(".txtMult input").on('keyup mouseup', multInputs);
    function multInputs() {
        var $mult = 0;
        var $multNet = 0;
        var $multGrand = 0;
        $("tr.txtMult").each(function () {
            var $UnitPrice = $('.UnitPrice', this).val();
            var $Quantity = $('.Quantity', this).val();
            var $Discount = $('.Discount', this).val();
            var $total = (($UnitPrice) * ($Quantity));
            var $Nettotal = (($UnitPrice) * ($Quantity) - ($Discount) * ($Quantity));

            $mult += $total;
            $multNet += $Nettotal;   

        });

        $("tr.txtMult").each(function () {
            var $UnitPrice = $('.UnitPrice', this).val();
            var $Quantity = $('.Quantity', this).val();
            var $Discount = $('.Discount', this).val();
            var $total = (($UnitPrice) * ($Quantity));
            var $Nettotal = (($UnitPrice) * ($Quantity) - ($Discount) * ($Quantity));

            $('.multTotal', this).text(parseFloat($total).toFixed(2));
            $('.multNet', this).text(parseFloat($Nettotal).toFixed(2));

        });
        $(".lblGrandAmount").text(parseFloat($mult).toFixed(2));
        $(".lblNetTotal").text(parseFloat($multNet).toFixed(2));

    }
});
C#代码

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            SetInitialRow();
        }
    }

 protected void griditem_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            e.Row.CssClass = "txtMult";
        }    
    }


    protected void ButtonAdd_Click(object sender, EventArgs e)
    {
        AddNewRowToGrid();
    }

    private void AddNewRowToGrid()
    {
        int rowIndex = 0;

        if (ViewState["CurrentTable"] != null)
        {
            DataTable dtCurrentTable = (DataTable)ViewState["CurrentTable"];
            DataRow drCurrentRow = null;
            if (dtCurrentTable.Rows.Count > 0)
            {
                for (int i = 1; i <= dtCurrentTable.Rows.Count; i++)
                {
                    //extract the TextBox values
                    DropDownList dllitem = (DropDownList)griditem.Rows[rowIndex].Cells[1].FindControl("dllitem");
                    TextBox txtUnitprice = (TextBox)griditem.Rows[rowIndex].Cells[2].FindControl("txtUnitprice");
                    TextBox txtDiscount = (TextBox)griditem.Rows[rowIndex].Cells[3].FindControl("txtDiscount");
                    TextBox txtQuantity = (TextBox)griditem.Rows[rowIndex].Cells[4].FindControl("txtQuantity");
                    Label lblTotal = (Label)griditem.Rows[rowIndex].Cells[5].FindControl("lblTotal");
                    Label lblnet = (Label)griditem.Rows[rowIndex].Cells[6].FindControl("lblnet");

                    drCurrentRow = dtCurrentTable.NewRow();
                    drCurrentRow["Sr.No"] = i + 1;

                    dtCurrentTable.Rows[i - 1]["Column1"] = dllitem.SelectedValue;
                    dtCurrentTable.Rows[i - 1]["Column2"] = txtUnitprice.Text;
                    dtCurrentTable.Rows[i - 1]["Column3"] = txtDiscount.Text;
                    dtCurrentTable.Rows[i - 1]["Column4"] = txtQuantity.Text;
                    dtCurrentTable.Rows[i - 1]["Column5"] = lblTotal.Text;
                    dtCurrentTable.Rows[i - 1]["Column6"] = lblnet.Text;


                    rowIndex++;
                }
                dtCurrentTable.Rows.Add(drCurrentRow);
                ViewState["CurrentTable"] = dtCurrentTable;

                griditem.DataSource = dtCurrentTable;
                griditem.DataBind();
            }
        }
        else
        {
            Response.Write("ViewState is null");
        }

        //Set Previous Data on Postbacks
        SetPreviousData();
    }

    private void SetPreviousData()
    {
        int rowIndex = 0;
        if (ViewState["CurrentTable"] != null)
        {
            DataTable dt = (DataTable)ViewState["CurrentTable"];
            if (dt.Rows.Count > 0)
            {
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    DropDownList dllitem = (DropDownList)griditem.Rows[rowIndex].Cells[1].FindControl("dllitem");
                    TextBox txtUnitprice = (TextBox)griditem.Rows[rowIndex].Cells[2].FindControl("txtUnitprice");
                    TextBox txtDiscount = (TextBox)griditem.Rows[rowIndex].Cells[3].FindControl("txtDiscount");
                    TextBox txtQuantity = (TextBox)griditem.Rows[rowIndex].Cells[4].FindControl("txtQuantity");
                    Label lblTotal = (Label)griditem.Rows[rowIndex].Cells[5].FindControl("lblTotal");
                    Label lblnet = (Label)griditem.Rows[rowIndex].Cells[6].FindControl("lblnet");

                    dllitem.SelectedValue = dt.Rows[i]["Column1"].ToString();
                    txtUnitprice.Text = dt.Rows[i]["Column2"].ToString();
                    txtDiscount.Text = dt.Rows[i]["Column3"].ToString();
                    txtQuantity.Text = dt.Rows[i]["Column4"].ToString();
                    lblTotal.Text = dt.Rows[i]["Column5"].ToString();
                    lblnet.Text = dt.Rows[i]["Column6"].ToString();

                    rowIndex++;
                }
            }
        }
    }    

    private void SetInitialRow()
    {
        DataTable dt = new DataTable();
        DataRow dr = null;
        dt.Columns.Add(new DataColumn("Sr.No", typeof(string)));
        dt.Columns.Add(new DataColumn("Column1", typeof(string)));
        dt.Columns.Add(new DataColumn("Column2", typeof(string)));
        dt.Columns.Add(new DataColumn("Column3", typeof(string)));
        dt.Columns.Add(new DataColumn("Column4", typeof(string)));
        dt.Columns.Add(new DataColumn("Column5", typeof(string)));
        dt.Columns.Add(new DataColumn("Column6", typeof(string)));

        dr = dt.NewRow();
        dr["Sr.No"] = 1;
        dr["Column1"] = string.Empty;
        dr["Column2"] = string.Empty;
        dr["Column3"] = string.Empty;
        dr["Column4"] = string.Empty;
        dr["Column5"] = string.Empty;
        dr["Column6"] = string.Empty;

        dt.Rows.Add(dr);

        //Store the DataTable in ViewState
        ViewState["CurrentTable"] = dt;

        griditem.DataSource = dt;
        griditem.DataBind();
    }
受保护的无效页面加载(对象发送方,事件参数e)
{
如果(!Page.IsPostBack)
{
SetInitialRow();
}
}
受保护的无效griditem_RowDataBound(对象发送方,GridViewRowEventArgs e)
{
如果(e.Row.RowType==DataControlRowType.DataRow)
{
e、 Row.CssClass=“txtMult”;
}    
}
受保护的无效按钮单击(对象发送者,事件参数e)
{
AddNewRowToGrid();
}
私有void AddNewRowToGrid()
{
int rowIndex=0;
如果(ViewState[“CurrentTable”]!=null)
{
DataTable dtCurrentTable=(DataTable)视图状态[“CurrentTable”];
DataRow drCurrentRow=null;
如果(dtCurrentTable.Rows.Count>0)
{
对于(int i=1;i 0)
{
对于(int i=0;i
回发后,您必须手动执行JavaScript代码,将侦听器绑定到UpdatePanel中的元素。因此,创建一个JavaScript函数,您可以在需要时再次调用,而不仅仅是在准备好的文档中

<script type="text/javascript">
    $(document).ready(function () {
        doDefaultStuff();
    });

    function doDefaultStuff() {
        //all the javascript that you would normally put in document ready
    }        
</script>

您需要在部分回发后再次触发计算。这可以通过首先将所有计算脚本包装到一个函数中来完成。然后在文档加载和部分回发时调用此函数

$(document).ready(function() {
    // trigger you calculations
    doMyStuff();
});

var prm = Sys.WebForms.PageRequestManager.getInstance();

prm.add_endRequest(function() {
    // trigger you calculations
    doMyStuff();
});

当您单击按钮并重新加载页面时,您会丢失所有不在ViewState中的内容,为什么不使用连接到txtMult\U keyUp的服务器端方法替换多输入功能?您是否使用
更新面板
?是的,我使用的是更新面板
$(document).ready(function() {
    // trigger you calculations
    doMyStuff();
});

var prm = Sys.WebForms.PageRequestManager.getInstance();

prm.add_endRequest(function() {
    // trigger you calculations
    doMyStuff();
});