在asp.net中更改gridview中文本框的背景颜色?

时间:2011-12-14 14:12:36

标签: c# javascript asp.net

我正在开发一个asp.net应用程序,我可以将数据从SQL加载到aspx页面中的gridview。用户可以在gridview中编辑和保存值。 我的网格视图有itemtemplates,其中我有两个带文本框的列。我想要突出显示用户在gridview中编辑的不同颜色的所有单元格。

我能够为另一个aspx页面中的文本框做同样的事情,使用带有java脚本的gridview,代码如下:

<script type="text/javascript">


        $(document).ready(function() {

            $(':input').change(function() {

                $(this).addClass("textchanged");

            });

        });

    </script>



 <asp:GridView runat="server" ID="gvnames" AutoGenerateColumns="False" CellPadding="4"
            Font-Names="Georgia" ForeColor="Black" GridLines="Vertical" BackColor="White"
            BorderColor="#DEDFDE" BorderStyle="None" BorderWidth="1px" DataKeyNames="Name"
            DataSourceID="SqlDataSource1" 
           >
            <RowStyle BackColor="#F7F7DE" />
<colums>
    <asp:TemplateField HeaderText="Name">
                        <ItemTemplate>
                            <asp:Label ID="lblName"  Visible='<%# !(bool) IsInEditMode %>' runat="server"
                                Text='<%# Eval("Name") %>' />
                            <asp:TextBox ID="txtName" Width="250px" Visible='<%# IsInEditMode %>' runat="server" Text='<%# Eval("Name") %>' />
                        </ItemTemplate>
                    </asp:TemplateField>
</colums>
  <FooterStyle BackColor="#CCCC99" />
            <PagerStyle BackColor="#F7F7DE" ForeColor="Black" HorizontalAlign="Right" />
            <SelectedRowStyle BackColor="#CE5D5A" Font-Bold="True" ForeColor="White" />
            <HeaderStyle BackColor="#6B696B" Font-Bold="True" ForeColor="White" />
            <AlternatingRowStyle BackColor="White" />
        </asp:GridView>

当我尝试为网格视图中的文本框实现相同的代码时,它不起作用。 是正确的方法还是有其他方法可以实现? 如果有人能指引我走上正确的道路,我将不胜感激。

2 个答案:

答案 0 :(得分:2)

我认为你应该删除你在jquery中输入单词前面的:另外,如果这只发生在文本框中,那么你应该在jquery选择器中更具体,并将其更改为:

 $('input[type=text]')

答案 1 :(得分:0)

在您的标记中,请更改

<colums><colums>

-tag to

<Columns></Columns>

如果jQuery正常运行,这应该会有所帮助