好的,所以已经触及了这一点点,但我想我很难将它们放在一起。我的问题是我有一些动态表,我已经为某些表生成了css类。我有使用jquery隐藏不同表的复选框...但是在回发时,我可以让它返回默认值而不是用户选择删除的内容。每次隐藏表格时,我都希望通过回发保持这种方式,如果可能的话,通过页面传输。什么是最好的方法呢?
<input id="checkOne" type="checkbox" name="checkOne" checked="checked"/>One
<table class="thisClass">
<tr>
<td>Some Info</td>
</tr>
</table>
jQuery的:
$(document).ready(function () {
$('#checkOne').click(function () {
if ($(this).is(':checked')) {
$('.thisClass').show();
}
else {
$('.thisClass').hide();
}
});
答案 0 :(得分:0)
您可以将表设置为runat =&#34; server&#34;并创建一些与每个表关联的隐藏字段。 因此,当您使用Javascript(或JQuery或...)隐藏表时,将关联的隐藏字段的值设置为1。 然后在每个回发的代码隐藏中,检查隐藏字段和每个值为1的字段,设置TableName.Visible = false。 对于页面传输,您应该使用数据库或cookie或会话,而不是隐藏字段,以保存表的可见性状态。
答案 1 :(得分:0)
感谢您的帮助和评论...这就是我们这样做的方式,如果有人有更好的方式来编写它,请随意留下一个脚本,因为我是jQuery的新手。请记住,这些表是动态生成的,所以我没有表格的html而不重写它,我现在没有时间。每个表都有一个生成的css类,具体取决于列中的标题。那里还有很多代码。
<script type="text/javascript">
$(document).ready(function () {
//when back button is pressed, make sure all the checkboxes are checked
// var checkoxes = $('#check, #checkOne, #checkTwo, #checkThree, #checkFour, #onHold, #cancelled, #oPrep');
//checkoxes.prop('checked', true);
//Clicking the development link only displays development columns and checks only Dev box
$('#developmentLink').change(function () {
$('#checkOne').prop('checked', true);
$('#check, #checkTwo, #checkThree, #checkFour, #cancelled').prop('checked', false);
$('.developmentTwo').show();
$('.developmentOne, .Released, .obsolete, .cancelled').hide();
});
//checkbox toggle features
$("#check").change(function () {
if ($(this).is(':checked')) {
$('.developmentOne').show();
document.cookie = "check=Checked; path=/";
}
else {
$('.developmentOne').hide();
$("#checkFour").prop('checked', false);
document.cookie = "check=NotChecked";
}
});
$('#checkOne').change(function () {
if ($(this).is(':checked')) {
$('.developmentTwo').show();
$("#checkFour").prop('checked', false);
document.cookie = "check1=Checked; path=/";
}
else {
$('.developmentTwo').hide();
$("#checkFour").prop('checked', false);
document.cookie = "check1=NotChecked; path=/";
}
});
$('#checkTwo').change(function () {
if ($(this).is(':checked')) {
$("#checkFour").prop('checked', false);
$(".Released").show();
document.cookie = "check2=Checked; path=/";
}
else {
$(".Released").hide();
$("#checkFour").prop('checked', false);
document.cookie = "check2=NotChecked; path=/";
}
});
$('#checkThree').change(function () {
if ($(this).is(':checked')) {
$('.obsolete').show();
document.cookie = "check3=Checked; path=/";
}
else {
$('.obsolete').hide();
$("#checkFour").prop('checked', false);
document.cookie = "check3=NotChecked; path=/";
}
});
$('#checkFour').change(function () {
if ($(this).is(':checked')) {
$('.developmentOne, .developmentTwo, .Releaseed,.obsolete, .cancelled').show() &&
$("#check").prop('checked', true);
document.cookie = "check=Checked";
$("#checkOne").prop('checked', true);
document.cookie = "check1=Checked";
$("#checkTwo").prop('checked', true)
document.cookie = "check2=Checked";
$("#checkThree").prop('checked', true);
document.cookie = "check3=Checked";
$("#checkFour").prop('checked', true);
document.cookie = "check5=Checked";
$("#cancelled").prop('checked', true);
document.cookie = "check4=Checked";
}
else {
$("#checkOne, #checkTwo, #checkThree, #check, #cancelled, #checkFour").prop('checked', false) &&
$('.developmentOne, .developmentTwo, .Released, .obsolete, .cancelled').hide();
document.cookie = "check=NotChecked";
$("#checkOne").prop('checked', false);
document.cookie = "check1=NotChecked";
$("#checkTwo").prop('checked', false);
document.cookie = "check2=NotChecked";
$("#checkThree").prop('checked', false);
document.cookie = "check3=NotChecked";
$("#checkFour").prop('checked', false);
document.cookie = "check5=NotChecked";
$("#cancelled").prop('checked', false);
document.cookie = "check4=NotChecked";
}
});
$('#cancelled').change(function () {
if ($(this).is(':checked')) {
$('.cancelled').show();
document.cookie = "check4=Checked"
}
else {
$('.cancelled').hide();
$("#checkFour").prop('checked', false);
document.cookie = "check4=NotChecked"
}
});
$('#onHold').change(function () {
if ($(this).is(':checked')) {
$('.onHold').show();
document.cookie = "check6=Checked"
}
else {
$('.onHold').hide();
document.cookie = "check6=NotChecked"
}
});
$('#oPrep').change(function () {
if ($(this).is(':checked')) {
$('.moveToObsolescence').show();
document.cookie = "check7=Checked";
}
else {
$('.moveToObsolescence').hide();
document.cookie = "check7=NotChecked";
}
});
//if all checkboxes are checked except for the "All" checkbox, check "All" checkbox automatically
$('#check, #checkOne, #checkTwo, #checkThree, #cancelled').change(function () {
if ($('#check').is(':checked') && $('#checkOne').is(':checked') && $('#checkTwo').is(':checked') && $('#checkThree').is(':checked')
&& $('#cancelled').is(':checked')) {
$('#checkFour').prop('checked', true)
}
});
});
function startupChecks() {
if (getCookie("check") == 'Checked') {
$('#check').prop('checked', true) && $('.developmentOne').show();
}
else {
$('#check').prop('checked', false) && $('.developmentOne').hide() && $("#checkFour").prop('checked', false);
}
if (getCookie("check1") == 'Checked') {
$('#checkOne').prop('checked', true);
$('.developmentTwo').show();
}
else {
$('#checkOne').prop('checked', false) && $('.developmentTwo').hide() && $("#checkFour").prop('checked', false);
}
if (getCookie("check2") == 'Checked') {
$('#checkTwo').prop('checked', true) && $('.Released').show();
}
else {
$('#checkTwo').prop('checked', false) && $('.Released').hide() && $("#checkFour").prop('checked', false);
}
if (getCookie("check3") == 'Checked') {
$('#checkThree').prop('checked', true) && $('.obsolete').show();
}
else {
$('#checkThree').prop('checked', false) && $('.obsolete').hide() && $("#checkFour").prop('checked', false);
}
if (getCookie("check4") == 'Checked') {
$('#cancelled').prop('checked', true) && $('.cancelled').show();
}
else {
$('#cancelled').prop('checked', false) && $('.cancelled').hide() && $("#checkFour").prop('checked', false);
}
if (getCookie("check6") == 'Checked') {
$('#onHold').prop('checked', true) && $('.onHold').show();
}
else {
$('#onHold').prop('checked', false) && $('.onHold').hide();
}
if (getCookie("check7") == 'Checked') {
$('#oPrep').prop('checked', true) && $('.moveToObsolescence').show();
}
else {
$('#oPrep').prop('checked', false) && $('.moveToObsolescence').hide();
}
function getCookie(cname) {
var name = cname + "=";
var ca = document.cookie.split(';');
for (var i = 0; i < ca.length; i++) {
var c = ca[i];
while (c.charAt(0) == ' ') c = c.substring(1);
if (c.indexOf(name) != -1) return c.substring(name.length, c.length);
}
return "";
}
}
在Page_Load上,我们把这个小小的位置放在这里:
Page.ClientScript.RegisterStartupScript(this.GetType(), "CallMyFunction", "startupChecks()", true);
总而言之,一切都按预期工作,但我知道有一个更好的方式来写这个。再说一次,如果有人想拍它,我就是为了它。