Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.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
Javascript 带有经典asp数据绑定的If语句_Javascript_Asp.net - Fatal编程技术网

Javascript 带有经典asp数据绑定的If语句

Javascript 带有经典asp数据绑定的If语句,javascript,asp.net,Javascript,Asp.net,我正在使用WebForms gridview,并通过js实现编辑/更新功能。问题是我不希望每一行都有一个编辑按钮。是否有办法配置asp:template字段,以便仅当数据行满足特定条件时,我的编辑按钮才会显示 <asp:TemplateField HeaderText="ETA"> <ItemTemplate> <span id="jsEDateDataValue<%# Eval("ID") %>" cl

我正在使用WebForms gridview,并通过js实现编辑/更新功能。问题是我不希望每一行都有一个编辑按钮。是否有办法配置asp:template字段,以便仅当数据行满足特定条件时,我的编辑按钮才会显示

<asp:TemplateField HeaderText="ETA">
    <ItemTemplate>
        <span id="jsEDateDataValue<%# Eval("ID") %>" 
            class="displayInline">
            <%# Eval("ETA") %>
        </span>

在上面的代码下面,我有css隐藏的html输入,并设置为通过编辑按钮显示

换句话说,我将如何实现这个伪代码行

<%# if (Eval("Status") == "closed" || Eval("Status") == "open") Response.Write("<input type='text' />"); %>

这可能不是您想要的答案,但它可能会让您接近,并且应该更多地被视为伪代码,而不是真正的工作代码

<ItemTemplate>
    <asp:Panel ID="jsEDateDataValue" runat="server" CssClass="displayInline">
        <asp:TextBox ID="txtYourBox" runat="server" Visible="False"></asp:TextBox>
    </asp:Panel>
</ItemTemplate>

Protected Sub YourGrid_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles YourGrid.RowDataBound
    If e.Row.RowType = DataControlRowType.DataRow Then

        Dim jsEDateDataValue = DirectCast(e.Row.FindControl("jsEDateDataValue"), Panel)
        Dim txtYourBox = DirectCast(e.Row.FindControl("txtYourBox"), TextBox )
        jsEDateDataValue.Attributes.Add("data-id", e.Row.RowIndex) 'recreating something for javascript to use instead of jsEDateDataValue1, jsEDateDataValue2, jsEDateDataValue3, etc.

        If e.Row.DataItem("Status") = "closed" OR e.Row.DataItem("Status") = "open"" Then
            txtYourBox.Visible = True
        End If

    End If
End Sub

受保护的子YourGrid_RowDataBound(ByVal sender作为对象,ByVal e作为System.Web.UI.WebControl.GridViewRowEventArgs)处理YourGrid.RowDataBound
如果e.Row.RowType=DataControlRowType.DataRow,则
Dim jsEDateDataValue=DirectCast(e.Row.FindControl(“jsEDateDataValue”),面板)
Dim txtYourBox=DirectCast(例如,Row.FindControl(“txtYourBox”),TextBox)
jsEDateDataValue.Attributes.Add(“数据id”,e.Row.RowIndex)”重新创建javascript使用的内容,而不是jsEDateDataValue1、jsEDateDataValue2、jsEDateDataValue3等。
如果e.Row.DataItem(“状态”)为“关闭”或e.Row.DataItem(“状态”)为“打开”,则
txtYourBox.Visible=True
如果结束
如果结束
端接头

这可能不是您想要的答案,但它可能会让您接近,并且应该更多地被视为伪代码,而不是真正的工作代码

<ItemTemplate>
    <asp:Panel ID="jsEDateDataValue" runat="server" CssClass="displayInline">
        <asp:TextBox ID="txtYourBox" runat="server" Visible="False"></asp:TextBox>
    </asp:Panel>
</ItemTemplate>

Protected Sub YourGrid_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles YourGrid.RowDataBound
    If e.Row.RowType = DataControlRowType.DataRow Then

        Dim jsEDateDataValue = DirectCast(e.Row.FindControl("jsEDateDataValue"), Panel)
        Dim txtYourBox = DirectCast(e.Row.FindControl("txtYourBox"), TextBox )
        jsEDateDataValue.Attributes.Add("data-id", e.Row.RowIndex) 'recreating something for javascript to use instead of jsEDateDataValue1, jsEDateDataValue2, jsEDateDataValue3, etc.

        If e.Row.DataItem("Status") = "closed" OR e.Row.DataItem("Status") = "open"" Then
            txtYourBox.Visible = True
        End If

    End If
End Sub

受保护的子YourGrid_RowDataBound(ByVal sender作为对象,ByVal e作为System.Web.UI.WebControl.GridViewRowEventArgs)处理YourGrid.RowDataBound
如果e.Row.RowType=DataControlRowType.DataRow,则
Dim jsEDateDataValue=DirectCast(e.Row.FindControl(“jsEDateDataValue”),面板)
Dim txtYourBox=DirectCast(例如,Row.FindControl(“txtYourBox”),TextBox)
jsEDateDataValue.Attributes.Add(“数据id”,e.Row.RowIndex)”重新创建javascript使用的内容,而不是jsEDateDataValue1、jsEDateDataValue2、jsEDateDataValue3等。
如果e.Row.DataItem(“状态”)为“关闭”或e.Row.DataItem(“状态”)为“打开”,则
txtYourBox.Visible=True
如果结束
如果结束
端接头

您可以改为绑定codebehind吗?您可以改为绑定codebehind吗?您可以改为绑定codebehind吗?