从GridView中插入数据库中的值

时间:2015-03-31 20:22:21

标签: c# asp.net gridview

我在GridView的TextBox中有一列CheckBox和一列ItemTemplate,行数正在动态生成。

当我点击CheckBox时,TextBox的值正在发生变化,但当我将值插入数据库时​​,我在TextBox中给出的默认值就是保存它。< / p>

<asp:GridView ID="grdData" runat="server" Style="text-align: center;">
    <Columns>
        <asp:TemplateField>
            <ItemTemplate>
                <asp:CheckBox ID="CheckBox1" runat="server" onclick="changeTextValue(this)" />
            </ItemTemplate>
            <HeaderTemplate>
                <!-- <asp:CheckBox ID="CheckBox2" runat="server"OnClick="CheckAllEmp(this)" />-->
            </HeaderTemplate>
        </asp:TemplateField>
        <asp:TemplateField>
            <HeaderTemplate>
                <asp:Label ID="Status_Header" runat="server" Text="Status" />
            </HeaderTemplate>
            <ItemTemplate>
                <asp:TextBox ID="TextBox1" runat="server" Enabled="false" Text="1" ClientIDMode="Static"></asp:TextBox>
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

1 个答案:

答案 0 :(得分:0)

我找到了解决方案,从Enabled="false"删除TextBox1属性并检查。

<asp:TextBox ID="TextBox1" runat="server" Enabled="false" Text=1 ClientIDMode="Static"></asp:TextBox>

如果您要禁用最终用户的文本框,建议您使用 LABEL 控件而不是 TEXTBOX

这是LABEL控件的jQuery函数。

<script>
function changeTextValue(chk) {
        var currentTextID = $(chk).parents('tr').find('span[id$="Label1"]');
        alert(chk.checked + ": " + currentTextID.text());
        if (chk.checked == true)
            currentTextID.text("Present");
        else
            currentTextID.text("Absent");
    }
 </script>

标签控件应如下所示:

<asp:Label ID="Label1" runat="server" Text="Absent" EnableViewState="false" ClientIDMode="Static"></asp:Label>

如果您有任何疑问,请与我们联系。