为asp:Repeater设置不同的值为td

时间:2015-03-27 12:06:27

标签: c# asp.net

我最近开始与<asp:Repeater/>合作。我在数据库中有一个表,其中包含以下列

  1. ID
  2. Message
  3. Flag
  4. 我不允许以任何方式改变牌桌。存储的消息来自经理和员工。只有这样才能找到哪个邮件属于具有Flagmanager标记的employee列的用户。现在我需要从这个表中读取并在asp.net中开发的webform上显示它。我可以读取值没有问题,但问题是我需要一个接一个地显示它作为一个convo,所以我使用了<asp:Repeater/>但我似乎无法将消息放在不同的例如td

    第一行应该有经理消息

    第二行应该有员工留言

    以下代码是我目前的努力。

    标记

     <ItemTemplate>
    <tr>
        <td class="manager">
             <%:GetMessage("manager") %>
        </td>
    </tr>
    <tr>
        <td class="employee">
            <%:GetMessage("employee") %>
        </td>
    </tr>
    

    和C#代码

    protected string GetMessage(string flagIndicator)
    {
        using (SqlConnection connection = new SqlConnection(Common.ConnectionString))
        {
            string myQuery = @"SELECT MESSAGES FROM MYTABLE WHERE FLAG = @flag";
    
            using (SqlCommand cmd = new SqlCommand(myQuery, connection))
            {
                cmd.Parameters.AddWithValue("@flag", flagIndicator);
                connection.Open();
    
                using (SqlDataReader reader = cmd.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        Message = reader["MESSAGES"].ToString();
                        MyRepeater.DataSource = reader;
                        MyRepeater.DataBind();
                    }
                }
            }
        }
        //How to return the messages so they are spilt up by the flag
    }
    
    private string Message { get; set; }
    

    提前感谢您的帮助

1 个答案:

答案 0 :(得分:0)

查看:

<asp:Repeater ID="pageList" runat="server">
  <ItemTemplate>
     <tr>
      <td class='<%# ((System.Data.DataRowView)Container.DataItem)["Flag"]%>'>
        <%# ((System.Data.DataRowView)Container.DataItem)["Message"]%>
      </td>
     </tr>
  </ItemTemplate>
</asp:Repeater>

代码背后:

private void Page_PreRender(object sender, EventArgs e)
{
   pageList.DataSource = GetAllMessages();
   pageList.DataBind();   
}

商务:

    protected DataTable GetAllMessages()
    {
        using (SqlConnection connection = new SqlConnection(Common.ConnectionString))
        {
            string myQuery = @"SELECT MESSAGES FROM MYTABLE";

            SqlDataAdapter adapter = new SqlDataAdapter(queryString, connection);

            DataSet messagesDS = new DataSet();
            adapter.Fill(messagesDS, "MYTABLE");

            return messagesDS.Tables[0];
        }
    }