[.NET] gridview 用ObjectDataSource时的控件

楼主: ian90911 (xopowo)   2014-07-30 15:37:09
请输入专案类型(网站专案或者应用程式专案):
WEB FORM
这里有一个gridView,使用TemplateField
在上面会进行edit作业(触发onRowEditing事件)
<asp:TemplateField>
<ItemTemplate>
<asp:Label ID="lbl" runat="server" Text='<%# Eval("lbl")
%>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:DropDownList ID="ddlEdit" runat="server"></asp:DropDownList>
<asp:TextBox ID="tbEdit" runat="server" Text='<%# Eval("lbl") %>'
Visible="false"></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
我原本是用datatable在数据库捞完资料后
再把gridView的datasource指定到dataTable
但是资料量大的时候就很慢
后来找到objectDataSource的方式可以控制资料传输只传当下分页的内容
可是,原本onRowEditing事件里面有一个地方是要FindControl
protected void gv_RowEditing(object sender, GridViewEditEventArgs e)
{
gv.EditIndex = e.NewEditIndex;
ods.DataBind();
DropDownList ddl = (DropDownList)row.FindControl("ddlEdit");
...
可是我改用objectDataSource时
他却找不到控件
我猜测是gridview没有进入编辑模式导致它找不到EditItemTemplate
我试着在RowEditing事件里找ItemTemplate的看看,结果还真的读出来
所以问题在于
gv.EditIndex = e.NewEditIndex;
这一行指令为何在改用objectDataSource后
无法让gridview进入编辑模式...?
楼主: ian90911 (xopowo)   2014-07-30 17:36:00
最后改在DATABINDING事件处理这些了 解决了

Links booklink

Contact Us: admin [ a t ] ucptt.com