2

この GridView 内に TextBox の検証を追加しましたが、この検証は GridView の現在のページでのみ機能します (GridView の前のページと次のページでは機能しません)。

<asp:GridView ID="Grd1" runat ="server" Width ="100%" AllowPaging ="true" pagesize="5">
  <Columns>
    <asp:BoundField HeaderText="Name" DataField="NM" ItemStyle-Width="300px" HeaderStyle-Width="300px" HeaderStyle-Wrap="false" ItemStyle-Wrap="false" />
    <asp:TemplateField HeaderText="Size (GB)">
      <ItemTemplate>
        <asp:TextBox ID="txtSize" runat="server" Width="100px"></asp:TextBox>
      </ItemTemplate>
    </asp:TemplateField>
  </Columns>
</asp:GridView>

<asp:Button ID="btnAdd" runat="server" Text="Save" OnClick="btnAdd_Click" />

<script language="javascript" type="text/javascript">
    function IsValidateAdd() {
        if (validateGridTextBox() == false)
            { return false; }
    }

    function validateGridTextBox() {
        var flag = false;
        var dropdowns = new Array(); //Create array to hold all the dropdown lists.
        var gridview = document.getElementById('<%=Grd1.ClientID %>'); //grvDMODetails is the id of ur gridview.

        dropdowns = gridview.getElementsByTagName('input'); //Get all dropdown lists contained in Grd1.            
        for (var i = 0; i < dropdowns.length; i++) {
            if (dropdowns.item(i).value != "") //If dropdown has no selected value
            {
                flag = true;
            }
            else 
            {
                flag = false;
                break;
            }
        }

        if (flag == false) 
        {
            alert('Please enter Table Size.');
            return flag;
        }

</script>

コードビハインド:

btnAddDM.Attributes.Add("onclick", "return IsValidateAdd();");
4

1 に答える 1

0

前のページまたは次のページを移動すると、グリッド ビューの部分が変更されますが、JavaScript 関数は元のグリッド ビューにバインドされていました。これが機能しない理由です。

あなたがそれを機能させたい場合、2つの解決策があります

1、他のページに移動するときは、JavaScriptの検証機能を手動で再度バインドします。

2、onclientclick属性をテキストボックスコントロールに追加します。

<asp:TextBox ID="txtSize" runat="server" Width="100px" onClientClick="validateGridTextBox(this)"></asp:TextBox>

それに応じて、validateGridTextBox JavaScript 関数を変更します。

于 2013-09-29T09:35:50.893 に答える