我正在编写一个重复付款迁移工具,用于从一个支付系统转移到另一个支付系统。所有用户'信用卡和银行信息存储在这些系统上,因此我需要用户重新输入信息,因为我没有将信息存储在我自己的数据库中。
用户可以更新其信息,也可以选择删除定期付款,而不是将其迁移到新系统。我的迁移数据对象包含名为UpdateAction
的枚举,其值为Delete
和Update
。
我正在撰写评论 - 您输入的页面,并且ListView
控件带有显示所有信息的项目模板。当要删除操作时,没有其他信息要显示,所以我有:
<asp:ListView ID="lvReview" runat="server">
<ItemTemplate>
<table>
<tr>
<td colspan="2"><b><%# Eval("PaymentProfileName") %></b></td>
</tr>
<tr><td>Action</td><td><%# Eval("Action").ToString() %></td></tr>
<% if ((UpdateAction)Eval("UpdateAction") == UpdateAction.Update)
{ %>
<!-- Update item bound content here -->
<% } %>
</table>
</ItemTemplate>
</asp:ListView>
这不起作用,因为您必须使用<%# ... %>
才能使用Eval(),在这种情况下,您无法使用if
。有没有办法引用ascx文件本身绑定的数据项?或者我必须制作一堆文字控件并将if
放在OnItemDataBound
事件处理程序中?
答案 0 :(得分:0)
我认为你在ItemDataBound事件的正确轨道上。将更新项目绑定内容放在可以设置其可见性的面板中......
UpdateAction action = DataBinder.Eval(e.Item.DataItem, "UpdateAction");
if (action == UpdateAction.Update)
{
pnlUpdateItems.Visible = true;
}
else
{
pnlUpdateItems.Visible = false;
}