J'ai un champ caché sur ma pageasp.net champ caché ne pas fixer une nouvelle valeur, besoin désactivé autre
<input runat="server" type="hidden" id="selectedIndex" />
et il est fixé par ce groupe de code, un événement onclick à la suite d'un 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;
}
Voici ce qui se passe: Lorsque la page est chargée, le champ masqué est indéfini, ce qui devrait être le cas. Lorsque je clique sur une ligne, puis cliquez sur le « select » bouton qui appelle ensuite ceci:
GridView.Attributes.Add("disabled", "true");
GridView est désactivé (avec le bouton de sélection) et un autre gridview arrive (ce qui devrait se produire en fonction de ce qui est séleted dans le premier gridview). Alors maintenant, voici le problème. Lorsque je clique sur une ligne dans la grille (je ne parle que de la grille initiale, pas du secondaire qui se présente, ce n'est pas un problème ici), et cliquez sur sélectionner, tout devient grisé et la plupart du temps, le La ligne sélectionnée sera mise en surbrillance lorsque la page sera chargée (les autres fois, pour une raison ou une autre, la ligne 2 sera utilisée par défaut). Ensuite, disons que vous cliquez sur la rangée 4 puis cliquez sur la ligne 1 puis cliquez sur sélectionner, pour une raison quelconque, la ligne 4 restera en surbrillance et les données de la rangée 4 rempliront la deuxième grille, comme si vous n'aviez jamais cliqué sur la ligne 1. puis cliquez sur la ligne 1, puis à nouveau sur la ligne 1, sauvegarde-t-elle. Est-ce que quelqu'un sait pourquoi cela arrive?
De plus, je suis à peu près en essayant de désactiver la première gridview lorsque select est frappé si je
GridView.Attributes.Add("disabled", "true");
plutôt que GridView.Enabled = false; Si un utilisateur clique à nouveau sur le bouton de recherche (un autre bouton situé précédemment sur la page qui rend cette grille visible), je voudrais que la grille secondaire soit masquée, et la grille principale (celle en question) devenir réactivé. Mais faire
GridView.Attributes.Add("disabled", "false");
lorsque le bouton de recherche est déclenché désactive seulement le gridview, ce qui est très bizarre. Maintenant, je sais que le champ désactivé n'est supporté par aucun autre navigateur sauf IE, et je ne l'utilise que parce que j'ai besoin de vérifier si le gridview est désactivé, donc un utilisateur ne peut pas cliquer sur une autre ligne si je ne fais pas ce qui suit:
if (document.getElementById(gridViewCtlId).disabled == false)
Alors quelqu'un pourrait-il me faire savoir d'une autre façon d'accomplir cette tâche Merci encore à l'avance