【问题标题】:Iterate Gridview to find greatest value using Javascript or jQuery使用 Javascript 或 jQuery 迭代 Gridview 以找到最大价值
【发布时间】:2015-07-03 15:17:09
【问题描述】:

我有一个网格视图,场景是:一旦有人删除了一行,它会检查 NOTIF_RECIP_SEQ_NBR 是否为最大值。如果是,则删除该行,否则会弹出一个窗口。

因此,基本上一旦有人单击删除,它就会获取该行的 NOtif_recip_Id 并遍历 Gridview 以查看与该 NOTIF_RECIP_ID 对应的任何行的 NOTIF_RECIP_SEQ_NBR 是否更大。

问题可以在客户端吗?我是在服务器端完成的,但当我在客户端本身拥有所有数据时,我认为这不是一个好方法。

请帮忙。我用 Javascript 尝试了多种方法,但没有用。

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<script type="text/javascript">

    function check(var a ,var b) 
    {

        var grid = document.getElementById("GridView1");
        var cellPivot;
        debugger;
        if (grid.rows.length > 0) {
            for (i = 1; i < grid.rows.length-1; i++)
            {

//here I want code to iterate and compare value.Is it possible?
            alert("You must select an answer for all columns if Pivot is yes")
            }

    }

</script>
</head>

<body>
    <form id="form1" runat="server">
    <div>
     <asp:ScriptManager ID="ScriptManager1" runat="server" EnablePartialRendering="true" />
<table>

<tr>
<td>
  <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
                     <ContentTemplate>
                     <asp:Label ID="Label13" runat="server" Text="Notif_Recip Data" BackColor="Azure"></asp:Label>
<asp:GridView ID="GridView1" runat="server"  DataKeyNames="NOTIF_RECIP_GUID" emptydatatext="There are no data records to display."
AutoGenerateColumns = "false" Font-Names = "Arial"
Font-Size = "11pt" AlternatingRowStyle-BackColor="Beige"
HeaderStyle-BackColor = "AppWorkspace" 
PageSize = "10"  >
<Columns>

<asp:TemplateField ItemStyle-Width = "30px"  HeaderText = "NOTIF_RECIP_ID">
    <ItemTemplate>
        <asp:Label ID="lblNOTIF_RECIP_ID" runat="server"
        Text='<%# Eval("NOTIF_RECIP_ID")%>'></asp:Label>
    </ItemTemplate>
     <EditItemTemplate>
        <asp:TextBox ID="txtNOTIF_RECIP_ID" runat="server"
            Text='<%# Eval("NOTIF_RECIP_ID")%>'></asp:TextBox>
             <asp:RequiredFieldValidator ID="v1txtNOTIF_RECIP_ID" runat="server" ControlToValidate="txtNOTIF_RECIP_ID" Text="?" ForeColor="Red"  />
    </EditItemTemplate> 

</asp:TemplateField>
<asp:TemplateField ItemStyle-Width = "100px"  HeaderText = "NOTIF_RECIP_SEQ_NBR">
    <ItemTemplate>


        <asp:Label ID="lblNOTIF_RECIP_SEQ_NBR" runat="server" 
                Text='<%# Eval("NOTIF_RECIP_SEQ_NBR")%>'></asp:Label>
    </ItemTemplate>

</asp:TemplateField>

<asp:TemplateField>
    <ItemTemplate>


    <asp:LinkButton ID="lnkRemove" runat="server"
            CommandArgument = '<%# Eval("NOTIF_RECIP_GUID")%>'
         OnClientClick = "ValidateGrid"
       Text = "Delete" OnClick = <%# "javascript:check('" + Eval("NOTIF_RECIP_SEQ_NBR")" + "Eval("NOTIF_RECIP_ID") + "')" %> ></asp:LinkButton>

    </ItemTemplate>


</asp:TemplateField>
<asp:CommandField  ShowEditButton="True" />
</Columns>
 <HeaderStyle Font-Bold="True" />

<AlternatingRowStyle BackColor="#C2D69B"  />
</asp:GridView>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID = "GridView1" />
</Triggers>
</asp:UpdatePanel>
</td>
</tr>

</table>
</div>
</form>
</body>
</html>

【问题讨论】:

    标签: javascript asp.net-mvc gridview


    【解决方案1】:

    我找到了适合任何有需要的人的解决方案。

    <script type = "text/javascript">
            function GetSelectedRow(lnk) {
            debugger;
              var table, tbody, i, rowLen, row, j, colLen, cell;
    
                var result = confirm('Do you want to delete this value ?');
                if (result) {
    
                    var x = document.getElementById('Label100');
    
    
                    table = document.getElementById("GridView1");
                    tbody = table.tBodies[0];
    
                    var bool = true;
                    var row = lnk.parentNode.parentNode;
                    var rowIndex = row.rowIndex - 1;
    
                    var RecipID = row.cells[0].innerText;
                    var Sqqno = parseInt(row.cells[1].innerText);
    
                    for (i = 1, rowLen = tbody.rows.length; i < rowLen; i++) {
                        row = tbody.rows[i];
    
                        var newrecipId = row.cells[0].innerText;
                        if (newrecipId == RecipID) {
                            cell = row.cells[1];
    
                            var newseq = parseInt(row.cells[1].innerText);
                            if (Sqqno < newseq) {
                                // debugger;
                                bool = false;
                                x = document.getElementById('Label100');
                                x.innerHTML = "ERROR-Delete RecipId with max Seqnumber";
                                x.style.display = "block";
    
                                return bool;
                                break;
                            }
    
                        }
                        else {
                            bool = true;
                        }
    
                    }
    
                    return bool;
                }
                else {
                    return false;
                }
    
            }
        </script>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-04-26
      • 2011-12-31
      • 2021-01-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-05
      相关资源
      最近更新 更多