如果TextBox不为空,如何禁用它?

时间:2019-02-27 11:58:37

标签: javascript jquery html asp.net

我有一个asp.net页面,其中在ListView中包含一些文本框
我想通过asp.net ItemDataBound ListView Event或Javascript代码禁用具有某些文本的文本框 我该怎么办?

<asp:ListView ID="ListView1" runat="server"  DataKeyNames="ID" >
    <ItemTemplate>
        <tr class="xl68" height="29" style='mso-height-source: userset; height: 21.75pt'>

        <td >&nbsp; <asp:Label ID="lblID" runat="server" Visible="false" Text='<%# Eval("ID") %>'></asp:Label></td>
        <td class="xl66" style='border-top: none'><%# Container.DataItemIndex + 1 %> </td>
        <td class="xl69" width="351" style='border-top: none; border-left: none; width: 263pt'> <%# Eval("Name") %></td>
        <td><asp:TextBox runat="server" MaxLength="2" Text='<%# Bind("C1") %>' ID="txb1"  ></asp:TextBox></td>
        <td><asp:TextBox runat="server" MaxLength="2" Text='<%# Bind("C2") %>' ID="txb2"  ></asp:TextBox></td>
        <td><asp:TextBox runat="server" MaxLength="2" Text='<%# Bind("C3") %>' ID="txb3"  ></asp:TextBox></td>
        <td><asp:TextBox runat="server" MaxLength="2" Text='<%# Bind("C4") %>' ID="txb4"  ></asp:TextBox></td>
        <td><asp:TextBox runat="server" MaxLength="2" Text='<%# Bind("C5") %>' ID="txb5"  ></asp:TextBox></td>
        <td class="xl67">&nbsp;</td>

        </tr>

    </ItemTemplate>
</asp:ListView>

3 个答案:

答案 0 :(得分:1)

为每个TextBox控件添加CssClass属性,例如

<asp:TextBox runat="server" MaxLength="2" ID="txb1" CssClass="myCss"  ></asp:TextBox>

在aspx中添加Js函数

 function DisableInput(){

     var inputs = $('input.myCss[type="text"]');
     inputs.each(function( index ) 
     {
       if( $( this ).text() !='')
       {
        $( this ).attr('disabled',true);
       }
     });

 }

在您的Page_Load事件上添加此代码

ClientScript.RegisterStartupScript(GetType(), "Javascript", "javascript:DisableInput(); ", true);

答案 1 :(得分:0)

在您的Page_Load事件上添加此代码

ClientScript.RegisterStartupScript(GetType(), "Javascript", "javascript:disablewithText(); ", true);

在该javaScript函数中,您可以遍历所有文本框并检查是否有值,因此可以设置disable属性。

答案 2 :(得分:0)

我在Code_Load事件中的此代码后面的CodeBehind中解决了它

foreach (ListViewItem row in ListView1.Items)
                    {
                        foreach (Control txt in row.Controls)
                        {
                            if (txt is TextBox)
                            {
                                if (((TextBox)txt).Text != "")
                                    ((TextBox)txt).Enabled = false;
                            }
                        }

                    }