当前位置:编程学习 > C#/ASP.NET >>

gridview 里模板列里textbox 当textchanged触发gridview什么事件?

想实现功能: 修改textbox内容 传到后台 做点计算


RowDataBound 事件里尝试另注册事件 e.row.findControl("") 但找不到绑不上


--------------------编程问答-------------------- 顶 --------------------编程问答-------------------- 试一试this.FindControl();
--------------------编程问答-------------------- 首先判断是否是数据行

//具体预防忘记了
if (e.Row.RowType == DataControlRowType.DataRow)
            {    }
--------------------编程问答-------------------- 绑上了 但事件 没有触发
        protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                TextBox txtNumber = e.Row.FindControl("txtNumber") as TextBox;
                txtNumber.TextChanged += new EventHandler(txtNumber_TextChanged);

            }
        }

 protected void txtNumber_TextChanged(object sender, EventArgs e)
        {
            
            TextBox txtNumber = ((TextBox)sender);
            if (EntityCache.CurrentCar.ContainsKey(int.Parse(txtNumber.ToolTip)))
            {

                EntityCache.CurrentCar[int.Parse(txtNumber.ToolTip)].Amount = double.Parse(txtNumber.Text);
                EntityCache.CurrentCar[int.Parse(txtNumber.ToolTip)].TotalPrice = double.Parse(txtNumber.Text) * EntityCache.CurrentCar[int.Parse(txtNumber.ToolTip)].UnitPrice;
            }

            Ini();
        }


前台:、

 <asp:TemplateField HeaderText="数量">
                                                    <ItemTemplate>
                                                        
                                                        <asp:TextBox ID="txtNumber"    ToolTip='<%# Eval("ProductID") %>' AutoPostBack="true"
                                                            Text='<%# Eval("Amount") %>' runat="server" Width="40" CssClass="box" MaxLength="4"
                                                            onkeypress="if (event.keyCode < 48 || event.keyCode >57) event.returnValue = false;"></asp:TextBox>
                                                    </ItemTemplate>
                                                    <ItemStyle HorizontalAlign="Center" Width="10%" />
                                                </asp:TemplateField>


--------------------编程问答-------------------- 在TextBox的onchange或是oblur事件中调用javascript方法去计算就可以啊,传到后台,可以使用ajax


<asp:TemplateField HeaderText="數量">
       <ItemTemplate>
         <input type="text" id="Quantity" maxlength="3" style="width:40px" onblur="[code=JScript]changeQty
(this)" value='<%# Eval("Quantity") %>' width="200"/>
      </ItemTemplate>
 </asp:TemplateField>
[/code]

function changeQty(obj)
{
    var html = $.ajax({
url: "ShoppingCart.aspx?Qty="+obj.value,
async: false
}).responseText;}
        ......//将返回的结果放到送显

}




protected void Page_Load(object sender, EventArgs e)
{
    Change(Request.Querystring["Qty"]);
}

private void Chagne(string qty)
{
    ...//做计算


    Response.Write(结果);
}


仅供参考
--------------------编程问答-------------------- 晕多点了个标签进去了 --------------------编程问答-------------------- 搞定了  居然 忘加注册好的事件 --------------------编程问答-------------------- jf --------------------编程问答-------------------- 顶 啊 不错 很有用啊谢谢 --------------------编程问答-------------------- e.row.单元格.findControl("")   --------------------编程问答-------------------- 在编辑事件里动态加载事件
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,