ASP.NET How to show AjaxControlToolkit Modal Popup from CheckBox -
i need show ajaxcontroltoolkit modalpopupextender control, when user checks/unchecks checkbox control inside gridview templatefield.
-- updated on 24/05/2013
see final solution here...
we solved problem. decided post here complete solution , final code.
the gridview
<asp:gridview id="gvdocs" runat="server" cssclass="grid" autogeneratecolumns="false" allowpaging="true" allowsorting="true" onpageindexchanging="gvdocs_pageindexchanging" onsorting="gvdocs_sorting" onrowdatabound="gvdocs_rowdatabound"> <alternatingrowstyle cssclass="grid_row_alternate"/> <headerstyle cssclass="grid_header" /> <rowstyle cssclass="grid_row" /> <selectedrowstyle cssclass="grid_row_selected" /> <columns> <asp:boundfield datafield="id"/> <asp:boundfield datafield="column_a" sortexpression="column_a" headertext="column_a" /> <asp:boundfield datafield="column_b" sortexpression="column_b" headertext="column_b" /> <!-- templatefield checkbox , modalpopupextender controls --> <asp:templatefield headertext="check" sortexpression="check_column"> <itemstyle horizontalalign="center"/> <itemtemplate> <asp:checkbox id="checkbox1" runat="server"/> <!-- modal popup block --> <asp:modalpopupextender id="modalpopupextender1" runat="server" backgroundcssclass="modalbackground" dropshadow="true" targetcontrolid="checkbox1" popupcontrolid="panmodalpopup" cancelcontrolid="cancelbutton"/> <asp:panel id="panmodalpopup" runat="server" style="display:none; text-align:left; width:400px; background-color:white; border-width:2px; border-color:#40a040; border-style:solid; padding:10px;"> sure? <br /><br /> <div style="text-align:right;"> <asp:button id="confirmbutton" runat="server" text="confirm" onclick="confirmbutton_click" commandargument='<%# databinder.eval(container.dataitem, "id") %>'/> <asp:button id="cancelbutton" runat="server" text="cancel"/> </div> </asp:panel> </itemtemplate> </asp:templatefield> </columns>
the code behind
protected void gvdocs_rowdatabound(object sender, gridviewroweventargs e) { if (e.row.rowtype.equals(datacontrolrowtype.datarow)) { // setting checkbox check reading state db checkbox checkbox1 = (checkbox)e.row.findcontrol("checkbox1"); checkbox1.checked = databinder.eval(e.row.dataitem, "check_column").tostring() == "y"; // or other value works true/false } } protected void confirmbutton_click(object sender, eventargs e) { string id = ((button)sender).commandargument; // id column value // update check_column value on db or whatever want id... binddata(); // method gridview databind after changes applied db }
some things know
1) modalpopupextender1
control inside gridview templatefield because needs have access checkbox1
, click event. it's not best solution ever, works , not affect on performance if gridview not complicated , if paged.
2) in order catch confirmbutton
click event, have remove okcontrolid
property modalpopupextender
control settings.
-- end
-- updated on 22/05/2013
then i need id of corresponding row make update on db.
-- end
this gridview
<asp:gridview id="gvdocs" runat="server" cssclass="grid" autogeneratecolumns="false" allowpaging="true" allowsorting="true" onpageindexchanging="gvdocs_pageindexchanging" onsorting="gvdocs_sorting" onrowdatabound="gvdocs_rowdatabound"> <alternatingrowstyle cssclass="grid_row_alternate"/> <headerstyle cssclass="grid_header" /> <rowstyle cssclass="grid_row" /> <selectedrowstyle cssclass="grid_row_selected" /> <columns> <asp:boundfield datafield="id_documento" visible="false"/> <asp:boundfield datafield="num_prot" sortexpression="num_prot" headertext="n. prot." /> <asp:boundfield datafield="date_prot" sortexpression="date_prot" headertext="data prot." /> ... other boundfields ... <asp:templatefield headertext="da archiviare" sortexpression="da_archiviare"> <itemstyle horizontalalign="center"/> <itemtemplate> <asp:checkbox id="chkarchiviare" runat="server" autopostback="true" oncheckedchanged="chkarchiviare_checkedchanged"/> </itemtemplate> </asp:templatefield> </columns>
and modalpopup block
<asp:toolkitscriptmanager id="toolkitscriptmanager1" runat="server"> </asp:toolkitscriptmanager> <asp:modalpopupextender id="modalpopupextender1" runat="server" dropshadow="true" targetcontrolid="panmodalpopup" popupcontrolid="panmodalpopup" okcontrolid="btnconferma" cancelcontrolid="btnannulla" /> <asp:panel id="panmodalpopup" runat="server" style="display:none; width:400px; background-color:white; border-width:2px; border-color:black; border-style:solid; padding:20px;"> sure? <br /><br /> <div style="text-align:right;"> <asp:button id="btnconferma" runat="server" text="conferma" onclick="btnconferma_click"/> <asp:button id="btnannulla" runat="server" text="annulla" onclick="btnannulla_click" /> </div> </asp:panel>
now, i want show modalpopup each time checkbox checked/unchecked , popup have show confirmation message 2 buttons: confirm , cancel. confirm have update on db , postback. cancel have hide popup without postback.
i know modalpopupextender listens onclick events. so, necessary need button, linkbutton, imagebutton, etc. or can want?
you right, listens onclick events, client-side ones, so, target control of extender can can click on, div or label.
Comments
Post a Comment