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