1

これは、SQL にバインドされたリピーター コントロールを動的に生成するために使用しているコードです。C#コーディングのみで行う必要があります。aspx部分に配置された「パネル」だけがあります。これを使用して出力を取得できます。しかし、スタイルを適用できないラベルに入っています。スクリーンショットを添付しました。誰かがスタイルを出力に適用するのを手伝ってください。交互の色など..ありがとうございます。

public partial class Default2 : System.Web.UI.Page
{    // Repeater Control Databinding using Datasource
        Repeater Repeater1 = new Repeater();
        //Repeater1.DataSource = myDataSet;
        //Repeater1.DataBind();

    protected void Page_Load(object sender, EventArgs e)
    {        
        string connStr = ("Data Source=LFVMOSS;Initial Catalog=DB_SFG;Persist Security Info=True;User ID=DB_SFG;Password=sfg");

        SqlConnection mySQLconnection = new SqlConnection(connStr);
        if (mySQLconnection.State == ConnectionState.Closed)
        {
            mySQLconnection.Open();
        }
        SqlCommand mySqlSelect = new SqlCommand("select * from List1", mySQLconnection);
        mySqlSelect.CommandType = CommandType.Text;
        SqlDataAdapter mySqlAdapter = new SqlDataAdapter(mySqlSelect); DataSet myDataSet = new DataSet();
        mySqlAdapter.Fill(myDataSet);

        // Repeater Control Databinding using Datasource
        Repeater1.DataSource = myDataSet;
        Repeater1.DataBind();        
        if (mySQLconnection.State == ConnectionState.Open)
        {
            mySQLconnection.Close();
        }           
        foreach (RepeaterItem repeatItem in Repeater1.Items)
        {
            // if condition to add HeaderTemplate Dynamically only Once
            if (repeatItem.ItemIndex == 0)
            {
                RepeaterItem headerItem = new RepeaterItem(repeatItem.ItemIndex, ListItemType.Header);
                HtmlGenericControl hTag = new HtmlGenericControl("h4");
                hTag.InnerHtml = "Employee Names";
                repeatItem.Controls.Add(hTag);
            }

            // Add ItemTemplate DataItems Dynamically
            RepeaterItem repeaterItem = new RepeaterItem(repeatItem.ItemIndex, ListItemType.Item);
           Label lbl = new Label();                   
           lbl.Text = string.Format("{0} {1} <br />", myDataSet.Tables[0].Rows[repeatItem.ItemIndex]["id"], myDataSet.Tables[0].Rows[repeatItem.ItemIndex]["Name"]);                     
           repeatItem.Controls.Add(lbl);

            // Add SeparatorTemplate Dynamically
            repeaterItem = new RepeaterItem(repeatItem.ItemIndex, ListItemType.Separator);
            LiteralControl ltrlHR = new LiteralControl();
            ltrlHR.Text = "<hr />";
            repeatItem.Controls.Add(ltrlHR);
        }

        // Add Repeater Control as Child Control
        // of Panel Control
        Panel1.Controls.Add(Repeater1);
    }
}

ここに画像の説明を入力

注: 出力は表のようになるはずです。1 つの列に数字が、別の列にアルファベットが表示されます。

4

1 に答える 1

1

コントロールにスタイルを追加する場合は、Styleプロパティを使用します。

 lbl.Style.Add(HtmlTextWriterStyle.BackgroundColor, "green");

しかし、上記のコメントが示唆するように、あなたはこれを逆の方法で行っています。表のような出力が必要な場合は、<table>タグを使用します

于 2012-06-28T12:21:53.717 に答える