javascript - 经典 ASP 数据绑定(bind)的 If 语句

标签 javascript asp.net

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

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

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

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

<%# 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

关于javascript - 经典 ASP 数据绑定(bind)的 If 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30766172/

相关文章:

javascript - angularjs:推送不是一个函数

javascript - 从 WFS 加载时,不会维护 OpenLayers 几何名称

c# - ASP.NET不显示用户控件C#

c# - ASP.NET TextRenderer.DrawText 糟糕的文本图像

javascript - ag-Grid 禁用水平填充句柄

javascript - 过滤包含零值的对象

javascript - 滑动左侧菜单的滑入和滑出过渡

c# - 通过 API 跟踪 Google 排名

c# - 在 Azure VM (virtocommerce) 上找不到 LibSass.x64

c# - Gridview 中的 TextBox 返回 null 或 'System.Web.UI.WebControls.TextBox'