再问: GridView的rowediting里为什么findcontrol不到控件???求助高人
先说说我的情况
1. GridView是AutoGenerateColumns="True",即列是自动生成的,但是由于各种需要,还添加了自己摸板列,如:
<asp:TemplateField HeaderText="详细情况">
<ItemTemplate>
<a href='bdgl03.aspx?ID=<%# DataBinder.Eval(Container.DataItem,"ID") %>'>详细情况</a>
</ItemTemplate>
<ItemStyle Width="30px" BorderWidth="1px" HorizontalAlign="Center" />
<HeaderStyle HorizontalAlign="Center" />
</asp:TemplateField>
2.生成表格的Sql语句是CS文件中给出的,即在 if (!IsPostBack)中进行绑定数据.
3.该控件要来更新数据,因此加入了如下代码:
<asp:TemplateField HeaderText="编辑" ShowHeader="False">
<EditItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="True" CommandName="Update"
Text="更新"></asp:LinkButton>
<asp:LinkButton ID="LinkButton2" runat="server" CausesValidation="False" CommandName="Cancel"
Text="取消"></asp:LinkButton>
</EditItemTemplate>
<ItemStyle BorderWidth="1px" HorizontalAlign="Center" VerticalAlign="Middle" Width="120px" />
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False" CommandName="Edit"
Text="编辑"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
我的问题是:
当我点击"编辑",修改数据后,再点"更新",此时执行GridView_RowUpdating事件,需要获取当前行的"可编辑框"的内容,(由于我的列是自动生成的),没有用模板,因此每一个可编辑框没有名字,我用如下方法获取:
string ss = (this.myGridView.Rows[e.RowIndex].Cells[4]).ToString(); (其中4是列序号)
用此方法可以获取主键列的数值(不可编辑的显示数据),不能获取 可编辑框 中的数据.
请大家给个办法.