1

我在下面遇到了经典的 can't use Bind in C# 问题。我不能使用 eval 因为我需要双向绑定。此文本框位于 rad 网格编辑表单中。

      <asp:TextBox ID="tbxTotalDepth" runat="server"
      Text='<%# (((GridEditFormItem)Container).DataItem is MS_Wells) 
      ? Bind("TotalDepth") : "" %>'  MaxLength="200"></asp:TextBox>

同样,我知道我不能使用上述内容,并且知道它是因为 bind 是什么。不过,我必须做点什么。这是我的用例:

我正在使用 Table per Type 结构,并且想要一个网格作为基本类型的主列表。我在基类上工作了 crud,但无法在任何派生字段上进行数据绑定。更具体地说,如果它是 MS_Well 类型,则 bind 可以正常工作,如果它不是那种类型,则网格会崩溃,因为该列不存在。我知道我可以在后端做到这一点,但是一旦我为每个派生类型有 10 - 15 列......那会变得混乱。

我已经想到了几个选项,但不确定最干净的选项,或者如何真正做到这些。1.创建后加载一个新的editformtemplate,基本上为'派生细节'创建一个新的命令列2.编写一个函数,如果它们不是正确的类型,则从初始化中删除所有有问题的控件3.一些其他形式的条件绑定?

查看我的文本框,如果数据项不是 MS-Well,我什至根本不需要它,但可见和启用 = false 不会阻止它尝试绑定。

4

0 回答 0