Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# _C#_Asp.net - Fatal编程技术网

C#

C# ,c#,asp.net,C#,Asp.net,对于这样的事情: <asp:panel id="pnl_ItemOrder" runat="server" cssclass="ItemOrder" visible="<%# CheckEdit_Status(IsEditable) %>"> 我如何知道它是在使用Bind还是Eval?或者它在做什么?好吧,因为我已经5年没有研究过与webforms密切相关的东西了,这将是对发生什么的一个估计: <body> <form id="form1" runat

对于这样的事情:

<asp:panel id="pnl_ItemOrder" runat="server" cssclass="ItemOrder" visible="<%# CheckEdit_Status(IsEditable) %>">

我如何知道它是在使用Bind还是Eval?或者它在做什么?

好吧,因为我已经5年没有研究过与webforms密切相关的东西了,这将是对发生什么的一个估计:

<body>
<form id="form1" runat="server">
<script type="text/C#" runat="server">
    private const bool isEdit = true;
</script>
<script type="text/C#" runat="server">

    private bool CheckEdit_Status(bool isEdit)
    {
        return isEdit;
    }

</script>
<asp:Panel ID="pnl_ItemOrder" runat="server" Visible="<%# (CheckEdit_Status(isEdit)) %>"
    Height="100" Width="100" BackColor="Aqua">
</asp:Panel>
<br />
<% pnl_ItemOrder.DataBind(); %>
</form>
这就是我所玩的,从我的逻辑推理和我在学校所记得的几件事,标记更常用于调用函数,eval用于计算对象,并将其转换为字符串,以在诸如中继器和数据网格(使用值数组)中表示

Eval,用于从databinder中获取一个项,并将其显示在其各自的数据绑定中。这是一个重要的控制器,在这里,您调用一个函数,该函数不需要在页面上有任何表示,也不在数据绑定控制器中,而是在面板上设置,因此,您可以告诉服务器为我设置此标志

切换到Eval将导致抛出异常,我们无法将bool转换为字符串,因为无法将bool表示为字符串是的,可以对其调用object.ToString方法,但这实际上不是一回事,在这种情况下,它将抛出异常,因为visible是一个布尔值而不是字符串值

Bind是Eval的一个陈旧版本,主要用于向后兼容,如果我理解正确的话

TLDR


这两者都不是,它只是告诉服务器调用一个函数以及服务器返回的内容=在此处设置该值。

好的,因为我研究与webforms密切相关的内容已经有5年了,这将是对发生的情况的估计:

<body>
<form id="form1" runat="server">
<script type="text/C#" runat="server">
    private const bool isEdit = true;
</script>
<script type="text/C#" runat="server">

    private bool CheckEdit_Status(bool isEdit)
    {
        return isEdit;
    }

</script>
<asp:Panel ID="pnl_ItemOrder" runat="server" Visible="<%# (CheckEdit_Status(isEdit)) %>"
    Height="100" Width="100" BackColor="Aqua">
</asp:Panel>
<br />
<% pnl_ItemOrder.DataBind(); %>
</form>
这就是我所玩的,从我的逻辑推理和我在学校所记得的几件事,标记更常用于调用函数,eval用于计算对象,并将其转换为字符串,以在诸如中继器和数据网格(使用值数组)中表示

Eval,用于从databinder中获取一个项,并将其显示在其各自的数据绑定中。这是一个重要的控制器,在这里,您调用一个函数,该函数不需要在页面上有任何表示,也不在数据绑定控制器中,而是在面板上设置,因此,您可以告诉服务器为我设置此标志

切换到Eval将导致抛出异常,我们无法将bool转换为字符串,因为无法将bool表示为字符串是的,可以对其调用object.ToString方法,但这实际上不是一回事,在这种情况下,它将抛出异常,因为visible是一个布尔值而不是字符串值

Bind是Eval的一个陈旧版本,主要用于向后兼容,如果我理解正确的话

TLDR


这两者都不是,它只是告诉服务器调用一个函数以及服务器返回的内容=在此处设置该值。

它所做的是调用一个名为CheckEdit\u Status的函数


查看该方法和属性的代码隐藏文件。如果正在使用Bind或Eval,则它将位于该方法中,或者它调用的某个方法中。

它所做的是调用一个名为CheckEdit\u Status的函数


查看该方法和属性的代码隐藏文件。如果使用Bind或Eval,它将出现在该方法中,或者它调用的某个方法中。

Bind是双向的,Eval是单向的…@leppie我知道,但确实如此=或者Bind是双向的,Eval是单向的…@leppie我知道,但确实如此=或者你可以只键入最后一句话。你可以只键入最后一句话。