button - Page postback - double binding -


i've got webpage has datagrid that's built dynamically depending on date , filters selected. on itemdatabound linkbutton created each cell when clicked open modal popup details can amended. problem i've got when change filters (datepicker, btnshow) page binding twice , duplicating columns in grid. if put != page.ispostback, when click cell linkbutton, datagrid disappears. please help

<%@ page title="" language="c#" masterpagefile="~/site.master" autoeventwireup="true"     codebehind="frm.aspx.cs" inherits="web.frm" %>  <%@ register assembly="ajaxcontroltoolkit" namespace="ajaxcontroltoolkit" tagprefix="asp" %> <asp:content id="content1" contentplaceholderid="contentplaceholder1" runat="server">     <script type="text/javascript" language="javascript" src="scripts/script.js"> </script>     <script src="scripts/jquery-1.8.3.js" type="text/javascript"></script>     <script src="scripts/jquery-ui-1.9.2.custom.js" type="text/javascript"></script>      <script language="javascript" type="text/javascript">         $(document).ready(function () {             $('#<%= datepicker.clientid %>').datepicker({ changemonth: true, changeyear: true });         });      </script>      <asp:scriptmanager runat="server" id="scriptmanager" enablepagemethods="true">     </asp:scriptmanager>     <asp:button id="btnshowpopupamend" style="display: none" runat="server" />     <!--start:amend details-->     <asp:modalpopupextender id="mpeamend" runat="server" targetcontrolid="btnshowpopupamend"         popupcontrolid="pnlpopupamend" cancelcontrolid="imgcancel" backgroundcssclass="modalbackground" />     <asp:panel id="pnlpopupamend" runat="server" width="700px" style="display: none;"         class="modalpanel">         <asp:panel id="pnlinner" runat="server" backcolor="white" width="700px">             <table style="width: 700px;" class="bg">                 <tr>                     <td width="10px">                         &nbsp;                     </td>                     <td align="left">                         <asp:label id="lbl" runat="server" text="amend" cssclass="norm_w" font-bold="true"></asp:label>                     </td>                     <td align="right">                         <asp:button id="btnamendcloseconfirm" runat="server" text="x" onclick="imgcancel_click">                         </asp:button>                     </td>                 </tr>                 </tr>                 <table style="width: 700px;">                     <tr height="25">                         <td width="10px">                             &nbsp;                         </td>                         <td>                             <asp:label id="label1" runat="server" cssclass="norm">&nbsp;name:</asp:label>                         </td>                         <td>                             <asp:label id="lblname" runat="server" cssclass="norm"></asp:label>                          </td>                     </tr>                     <tr height="25">                         <td width="10px">                             &nbsp;                         </td>                         <td valign="top">                             <asp:label id="label4" runat="server" cssclass="norm">&nbsp;address:</asp:label>                         </td>                         <td>                             <asp:textbox id="txtaddress" runat="server" cssclass="norm_no_border" textmode="multiline"                                 rows="4" width="300px" style="overflow: hidden"></asp:textbox>                         </td>                     </tr>                 </table>                 <br />                 <asp:button id="imgcancel" text="cancel" height="25px" width="80px" runat="server"                     onclick="imgcancel_click" />         </asp:panel>     </asp:panel>     <!--end:amend details-->     <!--start:filters-->     <div>         <asp:label id="lbl1" runat="server" cssclass="norm">show details:</asp:label>         <asp:checkbox id="chkdetails" runat="server"></asp:checkbox>         <asp:label id="lbl2" runat="server" cssclass="norm"> show names:</asp:label>         <asp:checkbox id="chknames" runat="server"></asp:checkbox>         &nbsp;<asp:button id="btnshow" text="go" runat="server" onclick="btnshow_click">         </asp:button>     </div>     <!--end:filters-->     <br />     <!--start:grid-->     <div>         <asp:label id="lblbeginning" runat="server" cssclass="head2">&nbsp;&nbsp;week:</asp:label>         &nbsp;&nbsp;<asp:textbox id="datepicker" runat="server" autopostback="true" cssclass="norm"             ontextchanged="datepicker_textchanged"></asp:textbox>      <br />     </div>     <asp:datagrid id="dgdata" runat="server" cssclass="dg" width="100%" cellpadding="4"         autogeneratecolumns="false" gridlines="vertical" onitemdatabound="dgdata_itemdatabound">         <alternatingitemstyle cssclass="alternating"></alternatingitemstyle>         <itemstyle cssclass="item"></itemstyle>         <columns>             <asp:templatecolumn>                 <headerstyle cssclass="head"></headerstyle>                 <itemstyle cssclass="bdr"></itemstyle>             </asp:templatecolumn>         </columns>     </asp:datagrid>     <!--end:grid--> 

code behind

protected void page_load(object sender, eventargs e)         {             if (!page.ispostback)             {                  if (session["week"] != null)                 {                     datetime ddate = datetime.parse(session["week"].tostring());                     datepicker.text = utils.getfirstdateofweek(ddate, dayofweek.monday).tostring("dd mmm yyyy");                 }                 else                 {                     datepicker.text = utils.getfirstdateofweek(datetime.now, dayofweek.monday).tostring("dd mmm yyyy");                     session["week"] = datepicker.text.tostring();                 }              }             binddata(datepicker.text, chkdetails.checked, chknames.checked);          }          protected void datepicker_textchanged(object sender, eventargs e)         {             binddata(datepicker.text, chkdetails.checked, chknames.checked);             session["week"] = datepicker.text.tostring();         }         protected void binddata(string swkdate, boolean bdetails, boolean bnames)         {             dataset ds = null;             ds = listgriddetails(swkdate);              //  .................         }         protected void dgdata_itemdatabound(object sender, datagriditemeventargs e)         {              if (e.item.itemtype == listitemtype.alternatingitem | e.item.itemtype == listitemtype.item | e.item.itemtype == listitemtype.selecteditem)             {                 linkbutton lnk = default(linkbutton);                 lnk = new linkbutton();                 lnk.text = "amend";                 lnk.commandname = "amend";                 lnk.commandargument = id;                 lnk.command += new commandeventhandler(amendbuttonclick);                 e.item.cells[i].controls.add(lnk);              }         }         public void amendbuttonclick(object sender, commandeventargs e)         {              //.............              this.mpeamend.show();          } 

on postback page_load called , binding logic invokes because doesn't stands under !page.ispostback. try use this

protected void page_load(object sender, eventargs e) {     if (!page.ispostback)     {          if (session["week"] != null)         {             datetime ddate = datetime.parse(session["week"].tostring());             datepicker.text = utils.getfirstdateofweek(ddate, dayofweek.monday).tostring("dd mmm yyyy");         }         else         {             datepicker.text = utils.getfirstdateofweek(datetime.now, dayofweek.monday).tostring("dd mmm yyyy");             session["week"] = datepicker.text.tostring();         }          binddata(datepicker.text, chkdetails.checked, chknames.checked);     } } 

Comments

Popular posts from this blog

ios - iPhone/iPad different view orientations in different views , and apple approval process -

java Extracting Zip file -

C# WinForm - loading screen -