【发布时间】:2019-12-02 13:03:46
【问题描述】:
提前感谢您的帮助:我有一个 Gridview,只有在激活复选框时才会激活 TextBox。我设法在Javascript中完成了这个功能。但问题是文本框默认启用(见图)。按下复选框两次后将其停用。我想解决这个问题,请你帮帮我。非常感谢 ! Look the image here !!
这是我的代码:
<div>
<asp:GridView ID="gvModifOuvrageNonControles" runat="server" AutoGenerateColumns="false" SkinID="MarionGridView">
<Columns>
<asp:BoundField DataField="MirePrincipal" HeaderText="OUVRAGE PRINCIPAL" />
<asp:BoundField DataField="LibelleMireSecondaire" HeaderText="OUVRAGE SECONDAIRE" />
<asp:TemplateField HeaderText="NON CONTROLE">
<ItemTemplate>
<asp:CheckBox ID="cbInspection" OnClick="grisé(this);" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="Libellel" HeaderText="LIBELLE DES MS,VI,PI,SU,CP,PL,PF" />
<asp:TemplateField HeaderText="RAISON">
<ItemTemplate>
<asp:TextBox ID="txtCause" On runat="server"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
<script type="text/javascript">
function grisé(obj) {
var rowData = obj.parentNode.parentNode;
if (rowData.cells[2].firstElementChild.checked == false) {
rowData.cells[4].firstElementChild.disabled = true;
}
else {
rowData.cells[4].firstElementChild.disabled = false;
}}
</script>
【问题讨论】:
-
您是否检查过您是否定位正确的元素或检查浏览器控制台是否有任何错误?使用
console.log()进行验证。 -
@JohnPete22 嗨,是的,我的目标是正确的元素。我只想让文本框默认禁用,然后用javascript函数更改。
-
那为什么不在文本框上显示
Enabled="False"?这样一开始它就被禁用了,然后你的 javascript 会在检查时启用它。 -
@JohnPete22 我已经尝试过了,但是如果您看到图像,您会看到在这两种情况下都启用了文本框。我希望仅当复选框为真时才启用文本框。
-
在初始加载页面时,是否有 GridView 的 RowDataBound 函数,用于确定复选框是否被选中?
标签: javascript c# jquery asp.net ascx