3

同じレイアウトで同じ結果を表示しているページがたくさんあります(検索結果、トップビュー、最近追加されたものなど)。フィールドを変更したい場合は、すべてのページでこれを行う必要があります。これを1か所で変更できるテンプレートまたはユーザーコントロールをリストビューに含めることは可能ですか?idパラメーターを渡す方法はありますか?

追加情報:今私はこのようなものを持っています:

<asp:ListView ID="ListView1" runat="server" DataSourceID="SqlDataSource" DataKeyNames="id">
    <ItemTemplate>
                 Id:
         <asp:Label ID="IDLabel" runat="server" 
         Text='<%# Eval("id") %>' />
         Description:
         <asp:Label ID="DescriptionLabel" runat="server" 
              Text='<%# Eval("Description") %>' />
   </ItemTemplate>
</asp:ListView>

私が持っているのが好きなのは:

<asp:ListView ID="ListView1" runat="server" DataSourceID="SqlDataSource" DataKeyNames="id">
    <ItemTemplate>
         <usrCtrl:info ID="info1" runat="server" /> 
   </ItemTemplate>
</asp:ListView>

およびテンプレートを含むファイル:

Id:
<asp:Label ID="IDLabel" runat="server" 
Text='<%# Eval("id") %>' />
Description:
<asp:Label ID="DescriptionLabel" runat="server" 
    Text='<%# Eval("Description") %>' />

ありがとう、ジムオーク

4

2 に答える 2

2

これを試して:

リストビュー:

<asp:ListView ID="ListView2" runat="server" 
    onitemdatabound="ListView2_ItemDataBound">
  <ItemTemplate>
     <usrCtrl:info Description_Lbl='<%# Bind("id") %>' 
                 ID_Lbl='<%# Bind("Description") %>' ID="info1"  runat="server" />
 </ItemTemplate>
</asp:ListView>

ユーザー制御コード:

info.ascx:

<%@ Control Language="C#" AutoEventWireup="true" 
                    CodeBehind="info.ascx.cs" Inherits="info" %>
<asp:Label ID="IDLabel" runat="server"  />
Description:
<asp:Label ID="DescriptionLabel" runat="server"  />

info.ascx.cs:

public partial class info: System.Web.UI.UserControl
{
    public string ID_Lbl {get;set;}
    public string Description_Lbl { get; set; }
    protected void Page_Load(object sender, EventArgs e)
    {
        IDLabel.Text = ID_Lbl;
        DescriptionLabel.Text = Description_Lbl;
    }
}
于 2013-03-12T13:46:18.773 に答える
1

ListView全体を使用してユーザーコントロール(* .ascxファイル)を作成し、データソースを公開してページのデータをバインドできます。

この投稿は役に立ちました:

ユーザーコントロールの.aspxファイルにDataSourceプロパティを設定するにはどうすればよいですか?

于 2013-03-12T13:29:33.723 に答える