2011-06-02 19 views
0

我在GridView的TemplateField中有一個TextBox。我在GridView下面有一個按鈕。當我在GridView的文本框中輸入一些文本時,我想啓用按鈕。這個怎麼做?我正在使用ASP.Net和C#.Net。在GridView的如何使用JavaScript在ASP.Net中的GridView中啓用基於TextBox的按鈕?

我的源代碼:

<table> 
    <tr> 
     <td> 
<asp:GridView ID="gvQCAttribute" runat="server" AllowPaging="true" AutoGenerateColumns="false" 
         CellPadding="0" CssClass="datagrid" DataKeyNames="ItemID" EnableTheming="false" 
         PageSize="10" Width="100%"> 
         <EmptyDataTemplate> 
          <table border="0" cellpadding="0" cellspacing="1" width="100%"> 
           <tr> 
            <tr> 
             <th scope="col"> 
              QC Attribute Name 
             </th> 
             <th scope="col"> 
              PO Attribute Value 
             </th> 
             <th scope="col"> 
              Negative Tolerance 
             </th> 
             <th scope="col"> 
              Positive Tolerance 
             </th> 
             <th scope="col"> 
              Remarks 
             </th> 
            </tr> 
           </tr> 
          </table> 
         </EmptyDataTemplate> 
         <SelectedRowStyle CssClass="rowselect" /> 
         <HeaderStyle ForeColor="White" /> 
         <AlternatingRowStyle CssClass="table_oddrow" /> 
         <RowStyle CssClass="table_evenrow" /> 
         <PagerStyle CssClass="pager_style" /> 
         <Columns> 
          <asp:TemplateField HeaderText="ItemID" Visible="false"> 
           <ItemTemplate> 
            <asp:Label ID="lblgvItemID" runat="server" Text='<%# Bind("ItemID") %>'></asp:Label> 
           </ItemTemplate> 
          </asp:TemplateField> 
          <asp:TemplateField HeaderText="QCAttributeID" Visible="false"> 
           <ItemTemplate> 
            <asp:Label ID="lblgvQCAttributeID" runat="server" Text='<%# Bind("QCAttributeID") %>'></asp:Label> 
           </ItemTemplate> 
          </asp:TemplateField> 
          <asp:TemplateField HeaderText="Attribute Name"> 
           <ItemTemplate> 
            <asp:Label ID="txtQCAttributeName" runat="server" Text='<%# Bind("AttributeName") %>'></asp:Label> 
           </ItemTemplate> 
           <ItemStyle Width="150px" /> 
           <ControlStyle Width="100%" /> 
          </asp:TemplateField> 
          <asp:TemplateField HeaderText="POAttrubute Value"> 
           <ItemTemplate> 
            <asp:TextBox ID="txtPOAttributeValue" runat="server" Text='<%# Bind("POAttributeValue") %>' 
             onkeyup="return EnableButton(this);" ValidationGroup="Modal" onkeypress="return checkNum(event);"></asp:TextBox> 

           </ItemTemplate> 
           <ItemStyle Width="100px" /> 
           <ControlStyle Width="95%" /> 
          </asp:TemplateField> 
          <asp:TemplateField HeaderText="Negative Tolerance"> 
           <ItemTemplate> 
            <asp:TextBox ID="txtNegTolerance" runat="server" Text='<%# Bind("NegativeTolerance") %>' 
             onkeyup="return EnableButton(this);" ValidationGroup="Modal" onkeypress="return checkNum(event);"></asp:TextBox> 

           </ItemTemplate> 
           <ItemStyle Width="100px" /> 
           <ControlStyle Width="95%" /> 
          </asp:TemplateField> 
          <asp:TemplateField HeaderText="Positive Tolerance"> 
           <ItemTemplate> 
            <asp:TextBox ID="txtPosTolerance" runat="server" Text='<%# Bind("PositiveTolerance") %>' 
             onkeyup="return EnableButton(this);" ValidationGroup="Modal" onkeypress="return checkNum(event);"></asp:TextBox> 

           </ItemTemplate> 
           <ItemStyle Width="100px" /> 
           <ControlStyle Width="95%" /> 
          </asp:TemplateField> 
          <asp:TemplateField HeaderText="Remarks"> 
           <ItemTemplate> 
            <asp:TextBox ID="txtRemarks" runat="server" Text='<%# Bind("Remarks") %>' onkeyup="return EnableButton(this);" 
             ValidationGroup="Modal"></asp:TextBox>           
           </ItemTemplate> 
           <ItemStyle Width="100px" /> 
           <ControlStyle Width="95%" /> 
          </asp:TemplateField> 
         </Columns> 
        </asp:GridView> 
     </td> 
    </tr> 
    <tr> 
     <td> 
     <asp:Button ID="btnmdeSave" runat="server" Text="Save" CssClass="ButtonClass" ValidationGroup="Modal" 
         OnClick="btnmdeSave_Click" /> 
     </td> 
    </tr> 
    </table> 

回答

1

使用onkeypressonkeyup事件,並檢查文本框是否爲空。

如果不是,則使按鈕啓用其他禁用。

function enableButton(){ 
    if(document.getElementById('txtPOAttributeValue').value != '' && document.getElementById('txtNegTolerance').value != '' && document.getElementById('txtPosTolerance').value != ''){ 
    document.getElementById('buttonId').disabled = false; 
    }else{ 
    document.getElementById('buttonId').disabled = true; 
    } 
} 
+0

嗨。它在gridview中爲單個文本框工作。但是我想在gridview中的所有三個文本框都有文本時啓用該按鈕。 – thevan 2011-06-02 07:54:38

+0

@thevan - 你能發佈你的gridview的html代碼嗎? – niksvp 2011-06-02 07:56:11

+0

hi niksvp。我發佈了html代碼。請看看它。 – thevan 2011-06-02 08:04:35

0

使用jQuery

// disabling button 
$("#buttonID").attr('disabled','disabled'); 

$("#textBoxID").keypress(function(){ 
    // enabling button 
    $("#buttonID").removeAttr('disabled'); 
}); 
相關問題