看板 Visual_Basic 關於我們 聯絡資訊
請輸入專案類型(網站專案或者應用程式專案): 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://www.ptt.cc/bbs/Visual_Basic/M.1406705832.A.B5C.html
ian90911:最後改在DATABINDING事件處理這些了 解決了 07/30 17:36