我的页面上有一个隐藏字段
<input runat="server" type="hidden" id="selectedIndex" />
它是由这串代码设置的,一个 onclick 事件到 gridview 的行:
var gridViewCtlId = '<%=GridView.ClientID%>';
var selectedIndex = '#<%=selectedIndex.ClientID%>';
var itemVisible = '<%=ItemVisible.ClientID%>';
var gridViewCtl = null;
var curSelRow = null;
var previousRowIndx = null;
window.onload = function showQuery()
{
if ($(selectedIndex).val() != undefined)
{
if ($(selectedIndex).val() != '')
{
var prevRowID = $(selectedIndex).val();
var prevRow = getSelectedRow(prevRowID);
prevRow.style.backgroundColor = '#1A8CD4';
}
}
}
function getGridViewControl(rowIdx)
{
if (gridViewCtl == null)
{
gridViewCtl = document.getElementById(gridViewCtlId);
}
}
function onGridViewRowSelected(rowIdx)
{
if (document.getElementById(gridViewCtlId).disabled == false)
{
var selRowCCA = getSelectedRow(rowIdx);
if (curSelRow != null)
{
var previousRow = getSelectedRow(previousRowIndx);
var CountIdx = previousRowIndx % 2;
if (document.getElementById(itemVisible) == null)
{
if (CountIdx == 0)
{
previousRow.style.backgroundColor = 'Silver';
}
else
{
previousRow.style.backgroundColor = 'White';
}
}
}
if (null != selRow)
{
previousRowIndx = rowIdx;
curSelRow = selRow;
selRow.style.backgroundColor = '#1A8CD4';
}
}
}
function getSelectedRow(rowIdx)
{
getGridViewControl(rowIdx);
if (gridViewCtl != null)
{
$(selectedIndex).val(rowIdx);
return gridViewCtl.rows[rowIdx];
}
return null;
}
这就是发生的情况:当页面第一次加载时,隐藏字段是未定义的,它应该是。当我单击一行然后单击“选择”按钮时,该按钮将调用它:
GridView.Attributes.Add("disabled", "true");
网格视图被禁用(与选择按钮一起)并且出现另一个网格视图(这应该取决于在第一个网格视图中选择的内容)。所以现在,问题来了。当我单击 gridview 中的一行时(我只是在谈论初始的 gridview,而不是出现的第二个,这不是问题),然后单击选择,所有内容都变灰,并且大多数时候,页面加载时选定的行将突出显示(其他时候由于某种原因默认为第 2 行)。然后,假设您单击第 4 行,然后单击第 1 行,然后单击选择,由于某种原因,第 4 行将保持突出显示,然后第 4 行的数据将填充第二个网格视图,就像您从未单击第 1 行一样。但是如果我单击第 4 行然后单击第 1 行,然后再次单击第 1 行,是否保存。有谁知道为什么会这样?
Also, I'm pretty much trying to disable the first gridview when select is hit so I do
GridView.Attributes.Add("disabled", "true");
而不是 GridView.Enabled = false;
如果用户重新单击搜索按钮(之前位于页面上的另一个按钮,使此 gridview 变得可见),我希望辅助 gridview 隐藏,并且主 gridview(这个有问题)重新启用. 但是做
GridView.Attributes.Add("disabled", "false");
当搜索按钮被触发时,只会禁用gridview,这很奇怪。现在我知道除了 IE 之外的任何其他浏览器都不支持禁用字段,我只使用它是因为我需要检查 gridview 是否被禁用,因此用户在做出选择后无法单击另一行(发生这种情况如果我不执行以下操作:
if (document.getElementById(gridViewCtlId).disabled == false)
那么有人可以让我知道完成该任务的另一种方法吗?再次提前感谢。