[.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