我似乎遇到了绑定问题,我到处试图解决它。
我在ASP.NET中有一个用户控件,它有一个很长的Channel ID公共属性。我已将此用户控件添加到空ASPX页面以进行测试。当我只是为这个属性值添加一个数字(即ChannelID="9"
)时,它就完美无缺。当我尝试执行以下操作时:
ChannelID="<%#: ChannelID %>"
其中ChannelID
是托管ASPX页面上的变量,它告诉我它不能从字符串转换为long作为编译错误。
到目前为止,我通过研究收集到的是数据绑定函数将值转换为字符串而不是保留其原始数据类型。
我想要完成的是在一个页面中拥有多个用户控件,这些控件都通过共享接口将属性绑定到主机页面的相同值。我知道我可以在代码后面执行此操作,但这正是我想要避免的。我也知道我可以简单地将数据类型更改为字符串,然后在将其从用户控件发送到数据库之前对其进行转换....如果我找不到其他解决方案,这将是我走的路线。
我没有真正发布的代码,因为这个场景非常基础。但这里是主页上用户代码的声明:
<UC:ChanControl ID="ChanControl1" runat="server" IsActiveView="true"
DisplayMode="Normal" ChannelID="<%#: ChannelID%>" />
同样,主机页面中的ChannelID
属性和用户控件都设置为long。
任何建议都将不胜感激。感谢。
答案 0 :(得分:1)
试试这个ChannelID='<%#: Eval(ChannelID) %>'
或
ChannelID='<%#: Eval(ChannelID).ToString() %>'