[ nebojsa4 @ 30.08.2012. 20:11 ] @
Evo o cemu se radi. 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 Code: <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 Code: 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. |