簡體   English   中英

如何從.ascx的page_load上訪問EditItemTemplate

[英]How to access EditItemTemplate from on page_load on .ascx

我在usercontrol.ascx上有以下代碼

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="OrderStatusEdit.ascx.cs" Inherits="Admin_Controls_OrderStatusEdit" %>
<asp:FormView ID="fvwOrderStatus" runat="server" OnModeChanging="fvwOrderStatus_ModeChanging" OnItemUpdating="fvwOrderStatus_ItemUpdating" OnDataBound="fvwOrderStatus_DataBound" OnPreRender="fvwOrderStatus_PreRender">
    <ItemTemplate>
        <%# WebUtils.GetLocString((string)Eval("Status")) %>
        <asp:Button ID="btnEdit" runat="server" SkinID="Buttons" CommandName="Edit" Text="<%$ Resources:Common,Edit %>" />

    </ItemTemplate>
    <EditItemTemplate>
        <asp:DropDownList ID="ddlStatus" runat="server" AutoPostBack="true" OnSelectedIndexChanged="ddlStatus_OnSelectedIndexChanged"  DataTextField="DisplayStatus" DataValueField="StatusId">
        </asp:DropDownList>
        <asp:Button ID="btnUpdate" runat="server" SkinID="Buttons" Text="<%$ Resources:Common,Update %>"  CommandName="Update" />
        <asp:Button ID="btnCancel" runat="server" SkinID="Buttons" Text="<%$ Resources:Common,Cancel %>" CommandName="Cancel" CausesValidation="false" />
    </EditItemTemplate>
</asp:FormView>

我在page.aspx上使用了此控件

我的問題是如何在Page_Load功能中禁用btnUpdate,以便如何訪問EditItemTemplateasp:FormView中存在的按鈕控件( <asp:Button ID="btnUpdate"

protected void Page_Load(object sender, EventArgs e)
    {
        //Here I need to Access btnUpdate ?! 
    }

您不能直接從用戶控件的父頁面訪問用戶控件的子控件,因為子控件是通過protected關鍵字修改的,這意味着它們只能由其類或繼承的類訪問。

用戶控件本身有一個Page_Load方法,但是您將無法使用該方法來訪問btnUpdate,因為它包含在FormView的EditItemTemplate中。 但是,您應該能夠像下面這樣使用FormView的DataBound事件(看來您已經在根據標記進行服務了):

protected void fvwOrderStatus_DataBound(object sender, System.EventArgs e)
{
    if(FormView1.CurrentMode == FormViewMode.Edit)
    {
        Button btnUpdate = FindControl("btnUpdate") as Button;
        btnUpdate.Enabled = true;
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM