中继器控件不显示来自数据库调用的数据

问题描述 投票:0回答:1

我有一个正在加载某些数据的转发器控件,但我没有获取 ItemTemplate 的数据。我已经验证从数据库返回的内容在 src[0][0] 中,但它没有显示出来。我试过使用 List<> 但没有用。提前致谢。

HTML

<asp:Repeater ID="GroupRepeater" OnItemDataBound="GroupRepeater_ItemDataBound" runat="server">
    <ItemTemplate>
        <asp:HiddenField ID="CompanyName" runat="server" />
        <h6><span></span> <%# Eval("BoardGroupName") %></h6>
        <h6><span class="location"></span> <%# Eval("CompanyName") %></h6>
        <table id="meeting_events">
            <asp:Repeater ID="MemberRepeater" runat="server">
                <HeaderTemplate>
                   <some stuff />
                </HeaderTemplate>
                <ItemTemplate>
                    <tr>
                        <td>
                            <div class="d-block d-md-none">
                                <asp:Label runat="server">Name<%# Eval("BoardMemberName") %></asp:Label>
                                <br/>
                            </div>
                        </td>
                    </tr>
                </ItemTemplate>
            </asp:Repeater>
        </table>
    </ItemTemplate>
</asp:Repeater>

代码隐藏

protected void Page_Load(object sender, EventArgs e)
{
    try
    {
        if (!Page.IsPostBack)
        {
            //load board members
            GroupRepeater.DataSource = DbHelper.SqlStoredProcedureDataTable("spQueryBoardMemberGroups", ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
            GroupRepeater.DataBind();
            divMessage.Visible = false;
        }
    }
    catch (Exception ex)
    {
        HelperFunctions.Logger.Error("Website" + ex.ToString(), MethodBase.GetCurrentMethod());
        lblMessage.Text = "Error encounted and logged, contact support - Method that failed = " + MethodBase.GetCurrentMethod().Name;
    }
}

protected void GroupRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
    try
    {
        DataRowView groupRow = (DataRowView)e.Item.DataItem;
        Repeater memberRepeater = (Repeater)e.Item.FindControl("MemberRepeater");

        if (memberRepeater != null && groupRow != null)
        {
            string companyName = groupRow.Row["CompanyName"].ToString();
            string constr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
            DataTable src = DbHelper.SqlStoredProcedure1ParamDataTable("spQueryBoardMembers", "@CompanyName", companyName, constr);

            memberRepeater.DataSource = src;
            memberRepeater.DataBind();
        }
    }
    catch (Exception ex)
    {
        HelperFunctions.Logger.Error("Website" + ex.ToString(), MethodBase.GetCurrentMethod());
        lblMessage.Text = "Error encounted and logged, contact support - Method that failed = " + MethodBase.GetCurrentMethod().Name;
    }
}
c# repeater
1个回答
0
投票

问题是

<div class="d-block d-md-none">

我改成

<div class="d-none d-md-inline">
© www.soinside.com 2019 - 2024. All rights reserved.