我记得textbox里面有个TextChange事件的,因为在GridView里面所以你不能点击自动添加,你得手动添加那个事件,之后就是获取该控件的父级元素,然后通过找到那一行的元素找到其他的的TextBox,然后你就可以操作这些TextBox了
protected void date2_TextChanged(object sender, EventArgs e) { var textbox = (TextBox)sender; var grid=textbox.Parent.Controls }
我的GridView里的代码是这样的
<asp:TemplateField HeaderText="税 额">
<ItemTemplate>
<asp:textbox runat="server" Text='<%# Bind("SE") %>' ID="TaxAmount" Width="100%"></asp:textbox>
<ItemStyle HorizontalAlign="Center" />
</ItemTemplate>
</asp:TemplateField>
但是在属性里面找不到你说的TextBoxChanged的事件呢
@ZKB&&ZKP: 你可以试着在页面上拖一个TextBox控件对他试试点击,然后看看自动生成的事件就好了
@华临天下: 我感觉,即使我再拖了一个textbox的事件,我加载好了数据之后;改变了GridView里tetxbox的值,他怎么不触发这个事件。
@ZKB&&ZKP: 你不觉的你试试之后更能理解了?
@华临天下: 我试过了;没有触发到事件里呢
protected void TextBox1_TextChanged(object sender, EventArgs e)
{
var textbox = (TextBox)sender;
var grid = textbox.Parent.Controls;
}
打了断点,进不来
@ZKB&&ZKP: 前端代码会不会少了那个 AutoPostBack="True"这个属性
@华临天下: 现在如果我在金额的TextBox里面加上OnTextChanged="txtPaidTaxAmt_TextChanged"事件,再在后台写上对应的方法,他只能获取到jine的属性值;有没有一个方法就是无论我触发哪一个,我能获取到所有的属性值;
不能每个字段都加上对应的OnTextChanged="txtxxxx_TextChanged"吧
@ZKB&&ZKP: 我上面不是说了?你可以获取到这一行的Controls,这一行所有的控件都在Controls这个里面,你可以获取所有有关这一行的任何东西
@华临天下: 是这个吗?var grid = textbox.Parent.Controls;假如我点击金额的textbox,这里就获取到了金额所在行的所有的空间集合在grid里面;
@ZKB&&ZKP: 试试断点进去看看里面有什么元素
Entity 实现 INotifyPropertyChanged 都不是梦。
当然还有很多办法来处理,如整体Rebind、视图层操作等。看自己选择吧。
这是WebForm,有什么可操作的事件之类的吗 ;百度了一堆实现不了
@ZKB&&ZKP: 那去dom找。