gpt4 book ai didi

c# - 将空值绑定(bind)到 Web 用户控件的属性

转载 作者:太空宇宙 更新时间:2023-11-03 16:58:26 24 4
gpt4 key购买 nike

在工作中处理一个有点复杂的页面来配置客户。设置是有一个主页,其中包含用于各种设置组的各种“面板”。

在一种情况下,主表上有一个电子邮件地址字段和一个控制电子邮件发送方式的“导出”配置。我创建了一个选择公司的主面板,并绑定(bind)到 FormView。 FormView 包含一个 Web 用户控件,用于处理导出详细信息的显示/配置。

Web 用户控件包含一个属性来定义它应该处理的配置,它使用 Bind() 从 FormView 获取值。

基本上控件是这样使用的:

<syn:ExportInfo ID="eiConfigDetails" ExportInfoID='<%# Bind("ExportInfoID" ) %>' runat="server" />

被绑定(bind)的属性在 CodeBehind 中声明如下:

public int ExportInfoID    
{
get
{
return Convert.ToInt32(hfID.Value);
}
set
{
try
{
hfID.Value = value.ToString();
}
catch(Exception)
{
hfID.Value="-1";
}
}
}

每当 ExportInfoID 为 null 时,我都会得到一个 null 引用异常,但更重要的是它发生在它实际尝试设置属性之前(或者它会在这个版本中被捕获。)

有人知道发生了什么,或者更重要的是,知道如何解决它......?

最佳答案

Bind 无法将 null 值转换为 int 值,以设置 ExportInfoID 属性。这就是为什么它没有被您的代码捕获的原因。您可以使该属性成为可空类型(int?),或者您可以在绑定(bind)逻辑中处理空值。

应该是这样的

bind receives field to get value from
bind uses reflection to get the value
bind attempts to set the ExportInfoID property // boom, error

关于c# - 将空值绑定(bind)到 Web 用户控件的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/97505/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com