c# - 数据列表问题

标签 c# asp.net datalist

我在 UpdatePanel 中有以下数据绑定(bind) DataList,只要从 DropDown 菜单中进行选择,它就会更新。
但是,如果没有从 db 表中检索到任何内容,我会得到一个空白部分。

我想做的是显示 ItemTemplate 中的同一张表以及文本 - 即 EmptyDataTempate 的“找不到管理员”、“找不到电子邮件”....等...
我注意到 DataList 不存在 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>

最佳答案

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

你调用一个像

这样的函数
<%#GetWithMsg(Container.DataItem, "CompanyEmail", "e-mail n/a")%>

例如

 <asp:TextBox Text='<%# GetWithMsg(Container.DataItem, "CompanyEmail", "e-mail n/a") %>' CssClass="input input1" ID="co_email"
                    Width="150" runat="server" ReadOnly="True" />

以及背后的代码。

protected string GetWithMsg(object oItem, string cField, string TheMsg)
{
    var TheData = DataBinder.Eval(oItem, cField);

    if(TheData == null)
        return TheMsg;
    else
        return TheData.ToString();
}

关于c# - 数据列表问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5128253/

相关文章:

c# - 在序列化到命名空间生成时创建 XML 前缀

c# - Aes 加密...缺少一个重要部分

c# - 为什么 id 在某些默认 MVC 操作上可以为空?

asp.net - 使用 linq 进行数据列表分页

asp.net datalist 选择每个类别的所有复选框

javascript - Asp.Net Core + Angularjs2,在一起还是分开?

c# - Web 浏览器控件 : click won't work

c# - 如何使用 twitter api 获取 twitter 用户的电子邮件地址

c# - 如果第二个或第三个表为空,LINQ Join 不返回结果

c# - 如何使用转发器显示 session 中的成员?