0

私は 1 つのプロジェクト Web サイト (引用 Web サイト) を持っています。すべての引用が表示されて収集されるページがあります。(下のスクリーンショット)。この結果を表示するためにストアド プロシージャを使用しました。

ここに画像の説明を入力

今私の主な問題:

ご覧のとおり、タグ用のフィールドがあります。例: タグ: Life、Funny、Leadership、Inspirational、Friendship

ただし、この値はデータベースの列カテゴリから取得されます。そして、これらすべてのカテゴリを表示するために単一のラベルを使用しています。

しかし、私はそれを個々のカテゴリに分割し、ユーザーがクリックした特定のカテゴリにリダイレクトしたいと考えています。

この単一のラベルを複数のハイパーリンクに分割する方法はありますか?

私のストアドプロシージャ(any1が必要な場合)

ALTER Proc text_quotes
    (
    @cat varchar(50)
    )
as
begin
    select p.id,p.title,p.description,p.category,p.metadescp,p.metatitle,p.tags,f.img
    from tbl_upload_image p
    inner join tbl_author f
    on p.description = f.name
    where p.category like '%' + @cat + '%'
    order by p.upload_date desc
end

データベースからのエントリの例:

ID : 12

引用:dghjn

カテゴリー: 人生, 面白い, リーダーシップ, インスピレーションを与える, 友情

作者:ジム・キャリー

アップデート:

私は以下のコーディングを使用しました:

foreach (DataListItem item in DataList4.Items)
        {
            Repeater RepeaterQ = ((Repeater)(item.FindControl("Repeater1")));
            string categories = ((Label)(item.FindControl("categoryLabel"))).ToString();

            // Label lblCategory = ((Label)(DataList4.FindControl("categoryLabel")));
            string[] arr1 = categories.Split(',');

            RepeaterQ.DataSource = arr1;

            RepeaterQ.DataBind();
        }

しかし、リピーターのテキストとして「System.Web.UI.WebControls.Label」を取得しています。何か助けはありますか?

4

1 に答える 1

0

次のような変数にカテゴリデータがある場合、例としてcategoriesラベルに割り当てていると思います。lblCategory

lblCategory.Text = categories;

そのようなことをしている場合は、これを試すことができます。

lblCategory.Text = String.Join("", 
     categories.Split(new char[]{','}, StringSplitOptions.RemoveEmptyEntries) //Split Category csv to array of categories
    .Select(x=>String.Format("<a href='page.aspx?cat={0}'>{0}</a>"), x)) // return all categories with formatted anchor tag
    .ToArray() // Convert To Array
); //Join with empty string and assign to label text property

最初にカテゴリをカンマで分割してから、 を使用しますLinq 拡張メソッドを選択して、書式設定されたハイパーリンクを返し、これらのリンクを結合してラベルに割り当てます。

または、そこでリピーターを使用してカテゴリをバインドできます。

更新しました:

foreach (DataListItem item in DataList4.Items)
{
    Repeater RepeaterQ = ((Repeater)(item.FindControl("Repeater1")));
    //string categories = ((Label)(item.FindControl("categoryLabel"))).ToString();
    string categories = ((Label)(item.FindControl("categoryLabel"))).Text;
    string[] arr1 = categories.Split(',');
    RepeaterQ.DataSource = arr1;
    RepeaterQ.DataBind();
}
于 2013-06-08T10:08:12.640 に答える