作者ian90911 (xopowo)
看板Visual_Basic
标题[.NET] gridview 用ObjectDataSource的时控制项
时间Wed Jul 30 15:37:09 2014
请输入专案类型(网站专案或者应用程式专案):
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进入编辑模式...?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 118.163.27.126
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/Visual_Basic/M.1406705832.A.B5C.html
1F:→ ian90911:最後改在DATABINDING事件处理这些了 解决了 07/30 17:36