我在 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/