Ahoj, mám takový problém. V mé webové stránce, načítám pomocí SqlDataSource data z databaze a zobrazuji je v GridView. Potřebuji aby na každý rádek v GridView šlo klinout a zjistit, kam bylo kliknuto. Řeším to takto:
------------------------------------------------------------------------------------
protected void GridView_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Attributes["onmouseover"] =
"javascript:setMouseOverColor(this);";
e.Row.Attributes["onmouseout"] =
"javascript:setMouseOutColor(this);";
e.Row.Attributes["onclick"] =
ClientScript.GetPostBackClientHyperlink
(this.GridView, "Select$" + e.Row.RowIndex);
}
}
<script language="javascript" type="text/javascript">
var oldgridSelectedColor;
function setMouseOverColor(element)
{
oldgridSelectedColor = element.style.backgroundColor;
element.style.backgroundColor='yellow';
element.style.cursor='hand';
}
function setMouseOutColor(element)
{
element.style.backgroundColor=oldgridSelectedColor;
element.style.textDecoration='none';
}
</script>
------------------------------------------------------------------------------------
Kam bylo stisknuto si zjištuju takto:
------------------------------------------------------------------------------------
protected void GridView_SelectedIndexChanged(object sender, EventArgs e)
{
string kam = GridView.SelectedRow.Cells[0].Text;
}
------------------------------------------------------------------------------------
Vše funguje dobře. Problém však nastává, když změním sql příkaz v SqlConnection a nová data znovu zobrazím v GridView. Např: Sql příkaz vybere prvních 10 záznamů z databáze, nyní vše funguje jak má, ale pokud změním sql příkaz, načtu třeba posledních 10 záznamů, tak pokud kliknu na první záznam v GridView, zobrazí se mi jméno záznamu, který tam byl předtím, při prvním sql příkazu.
Změnu provádím takto:
------------------------------------------------------------------------------------
this.SqlDataSource1.SelectCommand = "neco";
this.SqlDataSource1.DataBind();
this.GridView.DataSourceID = "SqlDataSource1";
this.GridView.DataBind();
------------------------------------------------------------------------------------
Napadlo mě, že by možná chtělo udělat nějaký refresh GridView, protože nová obnovená tabulka se zobrazí správně, ale staré hodnoty jakoby tam zůstaly, ale nejsou vidět. Neví někdo co s tím?
Fórum › .NET
GridView refresh
Zjistit počet nových příspěvků
Přidej příspěvek
Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
Uživatelé prohlížející si toto vlákno
Uživatelé on-line: 0 registrovaných, 32 hostů
Podobná vlákna
Delete v GridView — založil lost
Sorting v GridView C# — založil Ruda
Gridview a scrollování — založil labuzník
Moderátoři diskuze