gpt4 book ai didi

javascript - gridview 的选定行没有改变,而是所有行都在改变

转载 作者:行者123 更新时间:2023-11-28 20:15:20 25 4
gpt4 key购买 nike

我有一个包含复选框和文本框的 GridView 。我想要的是,当选中特定行的复选框时,该行的文本框将变成下拉列表。我用过.show().hide()显示下拉菜单和隐藏文本框的功能。

这是gridview的复选框:

     <ItemTemplate>      <div style="text-align: center;">
<asp:HiddenField ID="hdn_id2" runat="server" Value='<%#Eval("Id") %>' />

<asp:CheckBox ID="NewCheckBoxImage" CssClass="NewCheckBoxImage()" onClick="NewCheckBoxImage();" runat="server" /></div>
</ItemTemplate>

这是 javascript 代码:

   function NewCheckBoxImage() {

var flag = false;

$('.gridAssigned input[type="checkbox"]').each(function () {


if ($(this).is(':checked')) {
flag = true;
}
});
if (flag) {

$('.NewBtnAssign').show();
$('.TextBoxCompany').hide();
$('.TextBoxBrand').hide();
$('.DDCompany').show();
$('.DDBrand').show();

}
else {
$('.NewBtnAssign').hide();
$('.TextBoxCompany').show();
$('.TextBoxBrand').show();
$('.DDCompany').hide();
$('.DDBrand').hide();
}
}

TextBoxCompany、TextBoxBrand 是文本框,DDCompany、DDBrand 是下拉列表。当选择任何复选框时,所有文本框都会隐藏,所有下拉菜单都会显示。我希望选中复选框的行,只显示这些行的下拉列表。

最佳答案

您正在按类选择元素,这将返回的不仅仅是当前行的元素。尝试以下功能:

   function NewCheckBoxImage() {
$('.gridAssigned input[type="checkbox"]').each(function () {
//Find the current row
var row = $(this).parent().parent();

if ($(this).is(':checked')) {
//Checkbox is Checked

$(row).find('.NewBtnAssign').show();
$(row).find('.TextBoxCompany').hide();
$(row).find('.TextBoxBrand').hide();
$(row).find('.DDCompany').show();
$(row).find('.DDBrand').show();
} else {
$(row).find('.NewBtnAssign').hide();
$(row).find('.TextBoxCompany').show();
$(row).find('.TextBoxBrand').show();
$(row).find('.DDCompany').hide();
$(row).find('.DDBrand').hide();
}
});
}

它的作用是,每次单击复选框时,它都会遍历项目列表并检查是否已选中。如果选中该项目,它将使用 $(this).parent().parent(); 获取当前 HTML 行,然后使用该行查找存在于其中的所需元素该行并相应地显示/隐藏它们。

关于javascript - gridview 的选定行没有改变,而是所有行都在改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19290122/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com