Ich habe ein verstecktes Feld auf meiner Seiteasp.net versteckt Feld keine neuen Wert, müssen deaktiviert alternative
<input runat="server" type="hidden" id="selectedIndex" />
und es durch dieses Bündel von Code wird festgelegt, ein Onclick-Ereignis zu einer Reihe von 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;
}
Folgendes passiert: Wenn die Seite zuerst geladen wird, ist das ausgeblendete Feld nicht definiert, was es sein sollte. Wenn ich auf eine Reihe klicken und dann auf die Schaltfläche ‚Wählen‘, die dann diese Anrufe:
GridView.Attributes.Add("disabled", "true");
Die gridview deaktiviert wird (zusammen mit der Select-Taste) und eine weitere Gridview kommt (was auf je geschehen soll, was ist ausgewählt in der ersten Rasteransicht). So, jetzt, hier ist das Problem. Wenn ich auf eine Zeile in der Gridview klicke (ich spreche nur über die anfängliche Gridview, nicht die sekundäre Gridview, das ist kein Problem hier), und klicken Sie auf Auswählen, alles wird ausgegraut und die meiste Zeit, die Die ausgewählte Zeile wird hervorgehoben, wenn die Seite geladen wird (die anderen Male werden aus irgendeinem Grund standardmäßig Zeile 2 angezeigt). Dann sagen Sie, dass Sie auf Zeile 4 klicken, dann auf Zeile 1 klicken und dann auf Auswählen klicken, aus irgendeinem Grund bleibt Zeile 4 hervorgehoben und die Daten von Zeile 4 füllen dann die zweite Ansicht, als ob Sie nie Zeile 1 angeklickt hätten. Aber wenn ich Zeile 4 anklicke Klicken Sie dann auf Zeile 1 und dann erneut auf Zeile 1, wird gespeichert. Weiß jemand, warum das passiert?
Auch ich versuche, so ziemlich das erste Gridview zu deaktivieren, wenn das Auswahl getroffen wird, so muss ich
GridView.Attributes.Add("disabled", "true");
statt GridView.Enabled = false;
Wenn ein Benutzer erneut auf die Suchschaltfläche klickt (eine weitere Schaltfläche auf der Seite, die diese Rasteransicht sichtbar macht), möchte ich, dass die sekundäre Rasteransicht ausgeblendet wird und die primäre Rasteransicht (diese in Frage) werden wieder aktiviert. Aber das macht
wenn der Suchknopf ausgelöst wird nur deaktiviert die Gridview, die sehr seltsam ist. Jetzt weiß ich, dass das deaktivierte Feld von keinem anderen Browser außer IE unterstützt wird, und ich verwende es nur, weil ich überprüfen muss, ob die Gridview deaktiviert ist, so dass ein Benutzer nach der Auswahl nicht auf eine andere Zeile klicken kann (was passiert wenn ich nicht die folgenden:
if (document.getElementById(gridViewCtlId).disabled == false)
So könnte jemand lassen Sie mich einen anderen Weg wissen, diese Aufgabe zu bewerkstelligen, nochmals vielen Dank im Voraus