c# - Check for column and bind grid if exists or not -
how bind data itemtemplate of gridview @ rowdatabound event. using gridview , below code grid view.
<asp:gridview id="gvcoreutilization" runat="server" backcolor="white" bordercolor="#cecfce" borderstyle="solid" borderwidth="1px" cellpadding="4" forecolor="black" onrowcreated="grdpivot3_rowcreated" autogeneratecolumns="false" onrowdatabound="grdcoreutilization_rowdatabound"> <rowstyle backcolor="#f7f7de" /> <footerstyle backcolor="#cccc99" /> <pagerstyle backcolor="#f7f7de" forecolor="black" horizontalalign="right" /> <selectedrowstyle backcolor="#ce5d5a" font-bold="true" forecolor="white" /> <headerstyle backcolor="#6b696b" font-bold="true" forecolor="white" horizontalalign="left" /> <alternatingrowstyle backcolor="white" /> <columns> <asp:templatefield> <itemtemplate> <asp:label id="lblroleid" text='<%#eval("roleid") %>' runat="server" visible="false"></asp:label> </itemtemplate> </asp:templatefield> <asp:templatefield> <headertemplate> supervisorname </headertemplate> <itemtemplate> <asp:label id="lblsupervisorname" text='<%#eval("supervisorname") %>' runat="server"></asp:label> </itemtemplate> </asp:templatefield> <asp:templatefield> <headertemplate> userecode </headertemplate> <itemtemplate> <asp:label id="lbluserecode" text='<%#eval("userecode") %>' runat="server"></asp:label> </itemtemplate> </asp:templatefield> <asp:templatefield> <headertemplate> username </headertemplate> <itemtemplate> <asp:label id="lblusername" text='<%#eval("username") %>' runat="server"></asp:label> </itemtemplate> </asp:templatefield> <asp:templatefield> <headertemplate> designation </headertemplate> <itemtemplate> <asp:label id="lbldesignation" text='<%#eval("designation") %>' runat="server"></asp:label> </itemtemplate> </asp:templatefield> <asp:templatefield> <headertemplate> l & d training% </headertemplate> <itemtemplate> <asp:label id="lblldtraining" text='<%#eval("l & d training%") %>' runat="server"></asp:label> </itemtemplate> </asp:templatefield> <asp:templatefield> <headertemplate> non production% </headertemplate> <itemtemplate> <asp:label id="lblnonproduction" text='<%#eval("non production%") %>' runat="server"></asp:label> </itemtemplate> </asp:templatefield> <asp:templatefield> <headertemplate> process support% </headertemplate> <itemtemplate> <asp:label id="lblprocesssupport" text='<%#eval("process support%") %>' runat="server"></asp:label> </itemtemplate> </asp:templatefield> <asp:templatefield> <headertemplate> process training% </headertemplate> <itemtemplate> <asp:label id="lblprocesstraining" text='<%#eval("process training%") %>' runat="server"></asp:label> </itemtemplate> </asp:templatefield> <asp:templatefield> <headertemplate> production% </headertemplate> <itemtemplate> <asp:label id="lblproduction" text='<%#eval("production%") %>' runat="server"></asp:label> </itemtemplate> </asp:templatefield> <asp:templatefield> <headertemplate> system downtime% </headertemplate> <itemtemplate> <asp:label id="lblsystemdowntime" text='<%#eval("system downtime%") %>' runat="server"></asp:label> </itemtemplate> </asp:templatefield> <asp:templatefield> <headertemplate> grand total% </headertemplate> <itemtemplate> <asp:label id="lblgrandtotal" text='<%#eval("grand total%") %>' runat="server"></asp:label> </itemtemplate> </asp:templatefield> </columns> </asp:gridview> here want remove eval binding data itemtemplate. in place of want check weather
- if column exists in
dataset/datatableor not mentioned in gridview. - if column exists bind column appropriate itemtemplate .
- if column not exist display , bind available column , hide not available column.
query used:-
select roleid,supervisorname,userecode,username,designation,timespent,activityname coreutilizationforrole1 roleid=3 after executing above query, doing pivot on activity column c# , columns "l & d training%","non production%","process support%","process training%","production%","system downtime%","grand total%" binding on itemtemplate.
if (e.row.rowtype == datacontrolrowtype.datarow) { system.web.ui.webcontrols.label lblroleno = (system.web.ui.webcontrols.label)e.row.findcontrol("lblroleid"); system.web.ui.webcontrols.label lblsupervisorname = (system.web.ui.webcontrols.label)e.row.findcontrol("lblsupervisorname"); system.web.ui.webcontrols.label lbluserecode = (system.web.ui.webcontrols.label)e.row.findcontrol("lbluserecode"); system.web.ui.webcontrols.label lblusername = (system.web.ui.webcontrols.label)e.row.findcontrol("lblusername"); system.web.ui.webcontrols.label lbldesignation = (system.web.ui.webcontrols.label)e.row.findcontrol("lbldesignation"); system.web.ui.webcontrols.label lblldtraining = (system.web.ui.webcontrols.label)e.row.findcontrol("lblldtraining"); system.web.ui.webcontrols.label lblnonproduction = (system.web.ui.webcontrols.label)e.row.findcontrol("lblnonproduction"); system.web.ui.webcontrols.label lblprocesssupport = (system.web.ui.webcontrols.label)e.row.findcontrol("lblprocesssupport"); system.web.ui.webcontrols.label lblprocesstraining = (system.web.ui.webcontrols.label)e.row.findcontrol("lblprocesstraining"); system.web.ui.webcontrols.label lblproduction = (system.web.ui.webcontrols.label)e.row.findcontrol("lblproduction"); system.web.ui.webcontrols.label lblsystemdowntime = (system.web.ui.webcontrols.label)e.row.findcontrol("lblsystemdowntime"); system.web.ui.webcontrols.label lblgrandtotal = (system.web.ui.webcontrols.label)e.row.findcontrol("lblgrandtotal"); //checking weather columns exist in pivot or not var datarow = (datarowview)e.row.dataitem; var columnnametocheck = "l & d training%"; var checktraining = datarow.row.table.columns.cast<datacolumn>().any(x => x.columnname.equals(columnnametocheck, stringcomparison.invariantcultureignorecase)); if (checktraining) { // property available lblldtraining.text = (databinder.eval(e.row.dataitem, "l & d training%")).tostring(); } else { lblldtraining.visible = false; } var columnnonproduction = "non production%"; var checknonproduction = datarow.row.table.columns.cast<datacolumn>().any(x => x.columnname.equals(columnnonproduction, stringcomparison.invariantcultureignorecase)); if (checknonproduction) { // property available lblnonproduction.text = (databinder.eval(e.row.dataitem, "non production%")).tostring(); } else { lblnonproduction.visible = false; } var columnprocesssupport = "process support%"; var checkprocesssupport = datarow.row.table.columns.cast<datacolumn>().any(x => x.columnname.equals(columnprocesssupport, stringcomparison.invariantcultureignorecase)); if (checkprocesssupport) { // property available lblprocesssupport.text = (databinder.eval(e.row.dataitem, "process support%")).tostring(); } else { lblprocesssupport.visible = false; } var columnprocesstraining = "process training%"; var checkprocesstraining = datarow.row.table.columns.cast<datacolumn>().any(x => x.columnname.equals(columnprocesstraining, stringcomparison.invariantcultureignorecase)); if (checkprocesstraining) { // property available lblprocesstraining.text = (databinder.eval(e.row.dataitem, "process training%")).tostring(); } else { lblprocesstraining.visible = false; } var columnproduction = "production%"; var checkproduction = datarow.row.table.columns.cast<datacolumn>().any(x => x.columnname.equals(columnproduction, stringcomparison.invariantcultureignorecase)); if (checkproduction) { // property available lblproduction.text = (databinder.eval(e.row.dataitem, "production%")).tostring(); } else { lblproduction.visible = false; } var columnsystemdowntime = "system downtime%"; var checksystemdowntime = datarow.row.table.columns.cast<datacolumn>().any(x => x.columnname.equals(columnsystemdowntime, stringcomparison.invariantcultureignorecase)); if (checksystemdowntime) { // property available lblsystemdowntime.text = (databinder.eval(e.row.dataitem, "system downtime%")).tostring(); } else { lblsystemdowntime.visible = false; } var columngrandtotal = "grand total%"; var checkgrandtotal = datarow.row.table.columns.cast<datacolumn>().any(x => x.columnname.equals(columngrandtotal, stringcomparison.invariantcultureignorecase)); if (checkgrandtotal) { // property available lblgrandtotal.text = (databinder.eval(e.row.dataitem, "grand total%")).tostring(); } else { lblgrandtotal.visible = false; } var columnnametocheckroleid = "roleid"; var checkroleid = datarow.row.table.columns.cast<datacolumn>().any(x => x.columnname.equals(columnnametocheckroleid, stringcomparison.invariantcultureignorecase)); if (checkroleid) { // property available lblroleno.text = (databinder.eval(e.row.dataitem, "roleid")).tostring(); } else { lblroleno.visible = false; } var columnnametochecksupervisorname = "supervisorname"; var checksupervisorname = datarow.row.table.columns.cast<datacolumn>().any(x => x.columnname.equals(columnnametochecksupervisorname, stringcomparison.invariantcultureignorecase)); if (checksupervisorname) { // property available lblsupervisorname.text = (databinder.eval(e.row.dataitem, "supervisorname")).tostring(); } else { lblsupervisorname.visible = false; } var columnnametocheckuserecode = "userecode"; var checkuserecode = datarow.row.table.columns.cast<datacolumn>().any(x => x.columnname.equals(columnnametocheckuserecode, stringcomparison.invariantcultureignorecase)); if (checkuserecode) { // property available lbluserecode.text = (databinder.eval(e.row.dataitem, "userecode")).tostring(); } else { lbluserecode.visible = false; } var columnnametocheckusername = "username"; var checkusername = datarow.row.table.columns.cast<datacolumn>().any(x => x.columnname.equals(columnnametocheckusername, stringcomparison.invariantcultureignorecase)); if (checkusername) { // property available lblusername.text = (databinder.eval(e.row.dataitem, "username")).tostring(); } else { lblusername.visible = false; } var columnnametocheckdesignation = "designation"; var checkdesignation = datarow.row.table.columns.cast<datacolumn>().any(x => x.columnname.equals(columnnametocheckdesignation, stringcomparison.invariantcultureignorecase)); if (checkdesignation) { // property available lbldesignation.text = (databinder.eval(e.row.dataitem, "designation")).tostring(); } else { lbldesignation.visible = false; } //changing color of pivot data if (convert.toint32(lblroleno.text.tostring()) == 2) { e.row.backcolor = system.drawing.color.greenyellow; } if (convert.toint32(lblroleno.text.tostring()) == 3) { e.row.backcolor = system.drawing.color.cyan; } if (convert.toint32(lblroleno.text.tostring()) == 4) { e.row.backcolor = system.drawing.color.orange; } if (convert.toint32(lblroleno.text.tostring()) == 5) { e.row.backcolor = system.drawing.color.pink; } }
Comments
Post a Comment