我有一个带有一列 asp 按钮的 gridview,我使用 javascript 来切换文本,如下所示:
function btnBuyToggle(objRef)
{
var row = objRef.parentNode.parentNode;
var rowIndex = row.rowIndex;
if (objRef.value == "ADD")
{
objRef.value = "REMOVE";
$("#" + objRef.id).parent().parent().css("color", "#800080").css("font-style", "italic").css("background-color", "#F5FA61");
}
else
{
objRef.value = "ADD";
}
}
现在,我添加了另一个隐藏复选框的 gridview 列,我想用它来将切换按钮实例传递回另一个按钮单击事件后面的代码。所以,我需要做的是修改上面的脚本(JQuery 很好)以在被切换的同一行上设置复选框(选中 ADD 按钮文本值,并取消选中 REMOVE 按钮文本值。
这是我的gridview字段:
<asp:TemplateField HeaderText="Prior <br /> Downld" HeaderStyle-ForeColor="White" >
<ItemTemplate >
<asp:Button id="btnBuy" runat="server" OnClientClick="btnBuyToggle(this); return false;"
Text="ADD" CssClass="buyButton" Visible="true" />
</ItemTemplate>
<HeaderStyle Width="7%" />
<ItemStyle CssClass="sessionOrderDownloadItems" VerticalAlign="Middle" HorizontalAlign="Center" />
</asp:TemplateField>
<asp:TemplateField HeaderStyle-Width="0px" >
<ItemTemplate>
<asp:CheckBox Visible="False" Enabled="false" ID="buyCheckBoxHidden" runat="server"
Checked='<%# Eval("SORD_SelectedForPurchaseFlag") %>' />
</ItemTemplate>
<HeaderStyle Width="0px" />
</asp:TemplateField>
谢谢你,吉姆
这是我尝试的固定脚本:
function btnBuyToggle(objRef)
{
var $btn = $("#" + objRef.id);
if (objRef.value == "ADD")
{
objRef.value = "REMOVE";
$btn.closest('.myClass').prop("checked", true);
$btn.parent().parent().css("color", "#800080").css("font-style", "italic").css("background-color", "#F5FA61");
} else {
objRef.value = "ADD";
$btn.closest('.myClass').prop("checked", false);
$btn.parent().parent().css("background-color", "#FFFFFF").css("color", "#191970").css("font-style", "normal");
}
}
我修改过的复选框标记:
<asp:TemplateField HeaderStyle-Width="0px" >
<ItemTemplate>
<asp:CheckBox style="display:block;" ID="buyCheckBoxHidden" runat="server" CssClass="myClass" Checked="false" />
</ItemTemplate>
<HeaderStyle Width="0px" />
</asp:TemplateField>
谢谢你,吉姆