C# 数据表问题

C# 数据表问题,c#,asp.net,datalist,C#,Asp.net,Datalist,我在UpdatePanel中有以下数据绑定数据列表,每当从下拉菜单中进行选择时,该列表都会更新。 但是,如果没有从db表中检索到任何内容,则会得到一个空白部分 我想做的是显示ItemTemplate中的同一个表以及文本-例如,EmptyDataTemplate的“Admin Not Found”、“Email Not Found”…等。。。 我注意到数据列表不存在EmptyDataTemplate,但我不想使用其他控件 有办法做到这一点吗?示例代码感谢。谢谢 <asp:DataList I

我在UpdatePanel中有以下数据绑定数据列表,每当从下拉菜单中进行选择时,该列表都会更新。 但是,如果没有从db表中检索到任何内容,则会得到一个空白部分

我想做的是显示ItemTemplate中的同一个表以及文本-例如,EmptyDataTemplate的“Admin Not Found”、“Email Not Found”…等。。。 我注意到数据列表不存在EmptyDataTemplate,但我不想使用其他控件

有办法做到这一点吗?示例代码感谢。谢谢

<asp:DataList ID="DataList" runat="server">
    <ItemTemplate>
        <table>
            <tr>
                <td class="style1">
                    Company Admin:
                </td>
                <td>
                    <asp:TextBox Text='<%# Eval("CompanyAdmin") %>' CssClass="input input1" ID="co_admin"
                        Width="150" runat="server" ReadOnly="True" />
                </td>
            </tr>
            <tr>
                <td>
                    Admin Email:
                </td>
                <td>
                    <asp:TextBox Text='<%# Eval("AdminEmail") %>' CssClass="input input1" ID="ad_email"
                        Width="150" runat="server" ReadOnly="True" />
                </td>
            </tr>
            <tr>
                <td>
                    Company Email:
                </td>
                <td>
                    <asp:TextBox Text='<%# Eval("CompanyEmail") %>' CssClass="input input1" ID="co_email"
                        Width="150" runat="server" ReadOnly="True" />
                </td>
            </tr>
            <tr>
                <td>
                    Telephone:
                </td>
                <td>
                    <asp:TextBox Text='<%# Eval("Telephone") %>' CssClass="input input1" ID="telephone"
                        Width="150" runat="server" ReadOnly="True" />
                </td>
            </tr>
            <tr>
                <td>
                </td>
                <td>
                </td>
            </tr>
        </table>
    </ItemTemplate>
</asp:DataList>

您可以添加一个简单的函数,该函数在字段为null时返回消息

你调用一个函数,比如

<%#GetWithMsg(Container.DataItem, "CompanyEmail", "e-mail n/a")%>

您可以添加一个简单的函数,该函数在字段为null时返回消息

你调用一个函数,比如

<%#GetWithMsg(Container.DataItem, "CompanyEmail", "e-mail n/a")%>

未测试,但mybe您可以尝试

'<%# !string.IsNullOrEmpty(Eval("CompanyEmail").ToString()) ? Eval("CompanyEmail") : "Email Not Found" %>'

未测试,但mybe您可以尝试

'<%# !string.IsNullOrEmpty(Eval("CompanyEmail").ToString()) ? Eval("CompanyEmail") : "Email Not Found" %>'

我尝试添加您的代码,但由于某种原因,它并没有产生任何影响:它仍然在检索值,但在null时不显示字符串。这可能是什么原因造成的?我使用的是updatepanel,所以当绑定发生时,我需要在selectedindexchange下拉列表中添加任何代码吗?@user618616可能不是null而是空的,同时检查ToString.Lenght==0也可以使用string.IsNullOrEmptyHmm…仍然不显示消息。上面的代码看起来不错,也许你需要强制更新UpdatePanel,这取决于你如何设置控件的层次结构。尝试mYUpdatePanel.Update。我尝试添加代码,但由于某些原因,它并没有产生任何影响:它仍在检索值,但在null时不显示字符串。这可能是什么原因造成的?我使用的是updatepanel,所以当绑定发生时,我需要在selectedindexchange下拉列表中添加任何代码吗?@user618616可能不是null而是空的,同时检查ToString.Lenght==0也可以使用string.IsNullOrEmptyHmm…仍然不显示消息。上面的代码看起来不错,也许你需要强制更新UpdatePanel,这取决于你如何设置控件的层次结构。试试mYUpdatePanel.Update。由于某些原因,任何东西都不起作用……有没有其他方法可以考虑这样做?提前谢谢!抱歉,我没有注意到这个语句,但是,如果没有从db表中检索到任何内容,我会得到一个空白部分,这意味着我们不绑定任何数据,只需在绑定之前测试datatable,并在需要时添加一个空行,例如,if dt.Rows.Count==0{dt.Rows.Adddt.NewRow;}因为某种原因,什么都不起作用……你有没有其他方法可以考虑这样做?提前谢谢!抱歉,我没有注意到这个语句,但是,如果没有从db表中检索到任何内容,我会得到一个空白部分,这意味着我们不绑定任何数据,只需在绑定之前测试datatable,并在需要时添加一个空行,例如,if dt.Rows.Count==0{dt.Rows.Adddt.NewRow;}
'<%# !string.IsNullOrEmpty(((System.Data.DataRowView)Container.DataItem)["CompanyEmail"].ToString()) ? ((System.Data.DataRowView)Container.DataItem)["CompanyEmail"].ToString() : "Email Not Found" %>'
protected void BindData()
{
    DataTable dt = DAL.GetData(...
    if(dt.Rows.Count == 0)
    {
        dt.Rows.Add(dt.NewRow());
    }
    DataList.DataSource = dt;
    DataList.DataBind();
}