私の ASP.NET プロジェクト (VB.NET) には、TargetWebPage 属性で呼び出す DocumentDisplay という名前の自己コード化されたユーザー コントロールがあります。
<uc1:DocumentDisplay ID="DocumentDisplay" runat="server" TargetWebPage="EntityDocumentUpload"/>
ユーザー コントロールのコード ビハインドは、パブリック プロパティ TargetWebPage を実装しており、デバッガーで正しく設定されていることを確認できます。また、ユーザー コントロール (ascx) には yyySecureButton が定義されており (9 行目)、このパブリック プロパティも定義されており、これも設定されています。問題は、25 行目で (DomainGridView コントロール内で) 定義されている yyySecureCommandField までずっと下降するプロパティが必要なことです。このプロパティは、そのコントロールの分離コードにもありますが、設定されていません。
マークアップ内から yyySecureCommandField に TargetWebPage 属性を渡すことはできますか? そうでない場合、どのように行うのが最善ですか?
以下のコードは、クライアントを識別する文字列が vvv、xxx、yyy などに変更されていることを除いて、私が作業しているものと同じです。
返信ありがとうございます。
<%@ Control Language="vb" AutoEventWireup="false" CodeBehind="DocumentDisplay.ascx.vb" Inherits="zzz.DocumentDisplay" %>
<xxx:ErrorSection ID="ErrorSection" runat="server"/>
<div class="FieldGroup">
<fieldset>
<legend>Documents</legend>
<xxx:InputField runat="server" ID="InputFieldDocumentType" FieldName="DocumentType" CssClass="DocumentField" SuppressRequiredIndicator="True" />
<xxx:InputField runat="server" ID="InputFieldDocumentName" FieldName="DocumentName" CssClass="DocumentField" SuppressRequiredIndicator="True" />
<div class="DocumentField"><label>Upload</label><input type="File" id="DocumentUpload" runat="server" /></div>
<div class="TableSectionCommandBar"><vvv:yyySecureButton id="ButtonUpload" runat="server" SecurityMode="Action" Text="Add" CssClass="StandardButton"/></div>
<div class="Spacer" />
<div class="TableSection">
<xxx:DomainGridView ID="GridViewDocuments" runat="server" AutoGenerateColumns="False" CssClass="StandardTable" DomainObjectName="zzz.Domain.Document,yyyLib" DataKeyNames="DocumentId" AlwaysRequiresDatabind="True" AllowSorting="True">
<Columns>
<xxx:FieldDefinitionField FieldName="DocumentType" ShowToolTip="True" SortExpression="DocumentType" />
<xxx:FieldDefinitionField FieldName="DocumentName" ShowToolTip="True" SortExpression="DocumentName" />
<xxx:FieldDefinitionField FieldName="DocumentDate" IsReadOnly="True" ShowToolTip="True" SortExpression="DocumentDate" />
<asp:TemplateField HeaderText="Doc" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:Hyperlink ID="LinkViewContentDocuments" runat="server" Visible="<%#Not String.IsNullOrEmpty(DirectCast(Container.DataItem, DocumentInformation).DocumentFileName)%>" NavigateUrl="<%#ResolveUrl(String.Format(CultureInfo.InvariantCulture, ApplicationUrls.ViewEntityDocuments, DirectCast(Container.DataItem, DocumentInformation).DocumentId))%>" ImageUrl="<%#ResolveUrl(ApplicationUrls.PaperclipImage)%>" ToolTip="<%#DirectCast(Container.DataItem, DocumentInformation).DocumentFileName%>" Text="<%#DirectCast(Container.DataItem, DocumentInformation).DocumentFileName%>" />
</ItemTemplate>
<EditItemTemplate>
<input type="File" id="UpdateDocumentUpload" runat="server" />
</EditItemTemplate>
</asp:TemplateField>
<vvv:yyySecureCommandField SecurityMode="Action" EditText="Edit" UpdateText="Update" CancelText="Cancel" DeleteText="Delete" ShowCancelButton="True" ShowEditButton="True" ShowDeleteButton="True" />
</Columns>
<EmptyDataTemplate>
<asp:Label ID="LabelNoEntityResults" runat="server" Text="There are currently no documents to display."></asp:Label>
</EmptyDataTemplate>
<RowStyle CssClass="ItemRow" />
<HeaderStyle CssClass="HeaderRow" />
<AlternatingRowStyle CssClass="AlternatingItemRow" />
<PagerStyle CssClass="PagingRow" />
</xxx:DomainGridView>
</div>
</fieldset>
</div>