Imam tri button-a i jedan gridview.
Button-i su smesteni u jedan div dok je gridview u drugom.
U gridview-u AllowPaging je postavljen na false.
Kako da mi ostane fokusiran selektovani red kada kliknem na njega (prilikom selekcije istog) a ne da mi se pokaze ponovo prvi red tj. pocetak tabele?
Probao sam i sa MaintainScrollPositionOnPostback="true" i sa GridView1_SelectIndexChanger -> GridView2.SelectedRow.Focus(), ali nista ne uspeva.
Takodje sam koristio i UpdatePanel (UpdateMode="Conditional") i ScriptManager (EnablePartialRendering="true").
U ovom drugom slucaju sve radi, ali dok ne kliknem na jedan od button-a. Tada GridView ponovo prikaze sam vrh tabele.
default.aspx
<div style="postion:fixed; top:0px; left:0px; width:100%; height:30px; overflow:hidden;">
<asp:button runat="server" id="btnNovi" Text="Novi" />
<asp:button runat="server" id="btnEdit" Text="Izmeni" />
<asp:button runat="server" id="btnErase" Text="Brisanje" />
</div>
<div style="position:fixed; top:40px; left:0px; width:100%; height:400px; overflow:scroll;">
<asp:GridView runat="server" id="GridView1" AllowPaging="false" AutoGenerateColumns="false">
<Columns>
<asp:CommandField ShowSelectButton="True" Visible="True" SelectText="Select"
ItemStyle-CssClass="hideGC" HeaderStyle-CssClass="hideGC" >
<HeaderStyle CssClass="hideGC" />
<ItemStyle CssClass="hideGC" />
</asp:CommandField>
... itd, itd.... razna polja.
<SelectedRowStyle ForeColor="Yellow" BackColor="Blue" />
</Columns>
</asp:GridView>
</div>
<!-- "prozor" za editovanje podataka -->
<div runat="server" id="bck" style="postion:fixed; top:0px; left:0px; width:100%; height:100%; background-color:silver; opacity:0.7; display:none;"></div>
<div runat="server" id="WinEdit" style="postion:fixed; top:0px; left:0px; width:100%; height:100%; display:none;">
<table cellpadding="0" cellspacing="0" style="width:100%; height:100%;">
<tr>
<td style="width:100%; height:100%; vertical-align:middle;">
<center>
<table cellpadding="0" cellspacing="0" style="width:500px; border:solid 1px gray;">
<tr>
<td>UPIS NOVOG PODATKA</td>
</tr>
<tr>
<td>
Prezime i ime: <br />
<asp:textbox runat="server" id="txtIme" /></textbox>
</td>
</tr>
.... itd, itd
<tr>
<td style="text-align:center; vertical-align:middle;">
<asp:button runat="server" id="btnOdustani" Text="Odustani" />
<asp:button runat="server" id="btnSnimi" Text="Snimi podatke" />
</td>
</tr>
</table>
</center>
</td>
</tr>
</table>
</div>
default.aspx.vb
Private Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
e.Row.Attributes("onclick") = ClientScript.GetPostBackClientHyperlink(GridView1, "Select$" + e.Row.RowIndex.ToString)
End If
End Sub
Private Sub GridView1_SelectedIndexChanging(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewSelectEventArgs) Handles GridView1.SelectedIndexChanging
Session.Item("RecNo") = CLng(GridView1.Rows(e.NewSelectedIndex).Cells(1).Text)
End Sub
Private Sub btnEdit_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnEdit.Click
bck.Style.Item("display")="block"
WinEdit.Style.Item("display")="block"
itd, itd...
End Sub
Private Sub btnSnimi_Click(ByVal sender As Object, ByVal e As System.EventArgs) Hanfles btnEdit.Click
' vrsi se zapis u bazu podataka
bck.Style.Item("display")="none"
WinEdit.Style.Item("display")="none"
End Sub
Poenta je u tome da mi se GridView prikazuje "ceo" (znaci da ima scrollbar, npr. imam 100 zapisa).
E, kada selektujem neki red (npr. 55), cim to odradim (red jeste selektovan i session-u je dodeljen broj zapisa) ali mi se gridview postavi tj. prikaze sam vrh tabele tj. njega.
Ovo se ne desava u slucaju upotrebe UpdatePanel-a ali.... ali, cim kliknem na npr. btnEdit, gridview opet uradi isto, postavi se na sam vrh... a potrebno mi je da se nista po tom pitanju ne desi, nego da i dalje imam prikazan tj. fokusiran selektovani red.
Cak i kada postavim GridView.SelectedRow.Focus() opet ista prica.
Na nekom forumu sam procitao da kombinacija UpdatePanel i GridView dosta usporava rad tako da sam odlucio odbaciti ovu opciju (ionako samo "parcijalno" fukncionise).
Da li neko ima resenje za ovaj problem?
Unapred hvala na odgovorima i/ili savetima.
Pozdrav svima.