private void ShowBidTenders() { #region Code for preparing the DataTable BidTenderTransaction bt = new BidTenderTransaction(); int count = 0; DataTable dtTenders = bt.GetBidTenders(connstring, ViewState[Constant.SESSION_BIDREFNO].ToString().Trim(), ViewState[Constant.SESSION_USERID].ToString().Trim(), ref count); Session["Mode_BidTenders"] = ((count == 0) ? "Add" : "Edit"); //Create an instance of DataTable DataTable dt = new DataTable(); DataColumn dcol = new DataColumn(ID, typeof(System.String)); dcol = new DataColumn("ITEM", typeof(System.String)); dt.Columns.Add(dcol); dcol = new DataColumn("AMOUNT", typeof(System.String)); dt.Columns.Add(dcol); dcol = new DataColumn("TENDERDATE", typeof(System.String)); dt.Columns.Add(dcol); dcol = new DataColumn("BIDTENDERNO", typeof(System.String)); dt.Columns.Add(dcol); dcol = new DataColumn("BIDDETAILNO", typeof(System.String)); dt.Columns.Add(dcol); //Now add data for dynamic columns for (int i = 0; i < dtTenders.Rows.Count; i++) { //Create a new row DataRow drow = dt.NewRow(); drow["ITEM"] = dtTenders.Rows[i]["ITEM"].ToString().Trim(); drow["AMOUNT"] = ((i == dtTenders.Rows.Count - 1) ? "Last|" + dtTenders.Rows[i]["AMOUNT"].ToString().Trim() : dtTenders.Rows[i]["AMOUNT"].ToString().Trim()); drow["TENDERDATE"] = "DATE|" + dtTenders.Rows[i]["TENDERDATEMONTH"].ToString().Trim() + "/" + dtTenders.Rows[i]["TENDERDATEDAY"].ToString().Trim() + "/" + dtTenders.Rows[i]["TENDERDATEYEAR"].ToString().Trim(); drow["BIDTENDERNO"] = dtTenders.Rows[i]["BIDTENDERNO"].ToString().Trim(); drow["BIDDETAILNO"] = dtTenders.Rows[i]["BIDDETAILNO"].ToString().Trim(); dt.Rows.Add(drow); } IOClass IO = new IOClass(); IO.WriteIndexToFile(dtTenders.Rows.Count.ToString().Trim(), Session[Constant.SESSION_USERID].ToString().Trim()); BidTenderGeneral bidtender = new BidTenderGeneral(); bidtender = bt.QueryBidTendersGeneral(ViewState[Constant.SESSION_BIDREFNO].ToString().Trim(), ViewState[Constant.SESSION_USERID].ToString().Trim()); Session["Mode_BidTendersGeneral"] = bidtender.Mode_BidTendersGeneral.ToString().Trim(); DataRow drow1 = dt.NewRow(); drow1["ITEM"] = "Discount"; drow1["AMOUNT"] = "Discount|" + bidtender.Discount.ToString().Trim(); drow1["TENDERDATE"] = "Discount|NONE"; dt.Rows.Add(drow1); DataRow drow2 = dt.NewRow(); drow2["ITEM"] = "Total Cost"; drow2["AMOUNT"] = "Total Cost|" + bidtender.TotalCost.ToString().Trim(); drow2["TENDERDATE"] = "Total Cost|NONE"; dt.Rows.Add(drow2); DataRow drow3 = dt.NewRow(); drow3["ITEM"] = "Delivery Cost"; drow3["AMOUNT"] = "Delivery Cost|" + bidtender.DeliveryCost.ToString().Trim(); drow3["TENDERDATE"] = "Delivery Cost|NONE"; dt.Rows.Add(drow3); DataRow drow4 = dt.NewRow(); drow4["ITEM"] = "Total Extended Cost"; drow4["AMOUNT"] = "Total Extended Cost|" + bidtender.TotalExtendedCost.ToString().Trim(); drow4["TENDERDATE"] = "Total Extended Cost|NONE"; dt.Rows.Add(drow4); DataRow drow5 = dt.NewRow(); drow5["ITEM"] = "Incoterm"; drow5["AMOUNT"] = "Incoterm|" + bidtender.Incoterm.ToString().Trim(); drow5["TENDERDATE"] = "Incoterm|NONE"; dt.Rows.Add(drow5); DataRow drow6 = dt.NewRow(); drow6["ITEM"] = "Payment Terms"; drow6["AMOUNT"] = "Payment Terms|" + bidtender.PaymentTerms.ToString().Trim(); drow6["TENDERDATE"] = "Payment Terms|NONE"; dt.Rows.Add(drow6); DataRow drow7 = dt.NewRow(); drow7["ITEM"] = "Warranty"; drow7["AMOUNT"] = "Warranty|" + bidtender.Warranty.ToString().Trim(); drow7["TENDERDATE"] = "Warranty|NONE"; dt.Rows.Add(drow7); DataRow drow8 = dt.NewRow(); drow8["ITEM"] = "Remarks"; drow8["AMOUNT"] = "Remarks|" + bidtender.Remarks.ToString().Trim(); drow8["TENDERDATE"] = "Remarks|NONE"; dt.Rows.Add(drow8); #endregion //Iterate through the columns of the datatable to set the data bound field dynamically. foreach (DataColumn col in dt.Columns) { //Declare the bound field and allocate memory for the bound field. CustomBoundField bfield = new CustomBoundField(); //Initalize the DataField value. bfield.DataField = col.ColumnName; bfield.HeaderStyle.CssClass = "itemDetails_th"; switch (col.ColumnName) { case "ITEM": //Initialize the HeaderText field value. bfield.HeaderText = "Item"; bfield.HeaderType = Constant.HEADER_TYPE_LABEL.ToString().Trim(); bfield.ItemStyle.CssClass = "itemDetails_td"; bfield.DataField = "ITEM"; bfield.VendorId = Session[Constant.SESSION_USERID].ToString().Trim(); bfield.Editable = false; bfield.Date = false; bfield.Label2 = false; bfield.Label4 = true; bfield.LabelDate = false; break; case "AMOUNT": //Initialize the HeaderText field value. bfield.HeaderText = "Item Cost"; bfield.HeaderType = Constant.HEADER_TYPE_LABEL.ToString().Trim(); bfield.DataField = "AMOUNT"; bfield.ItemStyle.CssClass = "valueGridItem"; bfield.VendorId = Session[Constant.SESSION_USERID].ToString().Trim(); bfield.Editable = false; bfield.Date = false; bfield.Label2 = true; bfield.Label4 = false; bfield.LabelDate = false; break; case "TENDERDATE": //Initialize the HeaderText field value. bfield.HeaderText = "Delivery Date"; bfield.HeaderType = Constant.HEADER_TYPE_LABEL.ToString().Trim(); bfield.ItemStyle.CssClass = "valueGridItem"; bfield.DataField = "TENDERDATE"; bfield.VendorId = Session[Constant.SESSION_USERID].ToString().Trim(); bfield.Editable = false; bfield.Date = false; bfield.Label2 = false; bfield.Label4 = false; bfield.LabelDate = true; break; case "BIDTENDERNO": //Initialize the HeaderText field value. bfield.HeaderText = col.ColumnName; bfield.Visible = false; bfield.HeaderType = Constant.HEADER_TYPE_LABEL.ToString().Trim(); bfield.DataField = "BIDTENDERNO"; bfield.Editable = false; bfield.Date = false; break; case "BIDDETAILNO": //Initialize the HeaderText field value. bfield.HeaderText = col.ColumnName; bfield.Visible = false; bfield.HeaderType = Constant.HEADER_TYPE_LABEL.ToString().Trim(); bfield.DataField = "BIDDETAILNO"; bfield.Editable = false; bfield.Date = false; break; } //Add the newly created bound field to the GridView. gvBids.Columns.Add(bfield); } gvBids.DataSource = dt; gvBids.DataBind(); }
/// <summary> /// Adds columns to GridView in custom order. /// This method has to be implemented for every GridView that has user customizable column order. /// </summary> /// <param name="colOrderList">Defines the order of columns.</param> private void AddColumnsInCustomOrder(GridView gridview, ColumnOrderList colOrderList) { // TODO: Localization to header texts gridview.Columns.Clear(); // Static fields CustomButtonField cbtField = new CustomButtonField(); cbtField.HeaderID = null; // not a user customizable field //cbtField.HeaderText = "<a href=\"javascript:showOrderCustomizer('divColumnOrderCustomizer')\"><img src='/Resources/img/properties.gif' style='border-width:0px' alt='Properties'/></a>"; cbtField.HeaderText = "<a href=\"javascript:showOrderCustomizer('" + columnOrderCustomizer.showColumnOrderCustomizer + "', '" + columnOrderCustomizer.ID + "')\"><img src='/Resources/img/properties.gif' style='border-width:0px' alt='Properties'/></a>"; cbtField.ButtonType = ButtonType.Link; cbtField.CommandName = "Select"; cbtField.Visible = true; cbtField.Text = "<img src='/Resources/img/tablearrows/" + COMPANY_CODE + "/right_arrow.gif' style='border-width:0px'/>"; gridview.Columns.Add(cbtField); // User customizable fields foreach (ColumnOrderInfo colOrder in colOrderList) { switch (colOrder.ID) { case "NUMBER": CustomBoundField cbf1 = new CustomBoundField(); cbf1.HeaderID = "NUMBER"; cbf1.HeaderText = "Number"; cbf1.DataField = "ErrandId"; cbf1.SortExpression = "Number"; cbf1.Visible = colOrder.Visible; gridview.Columns.Add(cbf1); break; case "TYPE": CustomBoundField cbf2 = new CustomBoundField(); cbf2.HeaderID = "TYPE"; cbf2.HeaderText = "Type"; cbf2.DataField = "ErrandType"; cbf2.SortExpression = "Type"; cbf2.Visible = colOrder.Visible; gridview.Columns.Add(cbf2); break; case "STATUS": CustomBoundField cbf3 = new CustomBoundField(); cbf3.HeaderID = "STATUS"; cbf3.HeaderText = "Status"; cbf3.DataField = "Status"; cbf3.SortExpression = "Status"; cbf3.Visible = colOrder.Visible; gridview.Columns.Add(cbf3); break; case "CHANNEL": CustomBoundField cbf4 = new CustomBoundField(); cbf4.HeaderID = "CHANNEL"; cbf4.HeaderText = "Channel"; cbf4.DataField = "Channel"; cbf4.SortExpression = "Channel"; cbf4.Visible = colOrder.Visible; gridview.Columns.Add(cbf4); break; case "CUSTNAME": CustomBoundField cbf5 = new CustomBoundField(); cbf5.HeaderID = "CUSTNAME"; cbf5.HeaderText = "Cust. name"; cbf5.DataField = "CustomerName"; cbf5.SortExpression = "Cust. name"; cbf5.Visible = colOrder.Visible; gridview.Columns.Add(cbf5); break; case "HANDLER": CustomBoundField cbf6 = new CustomBoundField(); cbf6.HeaderID = "HANDLER"; cbf6.HeaderText = "Handler"; cbf6.DataField = "Handler"; cbf6.SortExpression = "Handler"; cbf6.Visible = colOrder.Visible; gridview.Columns.Add(cbf6); break; case "CREATION_DATE": CustomBoundField cbf7 = new CustomBoundField(); cbf7.HeaderID = "CREATION_DATE"; cbf7.HeaderText = "Cre. date"; cbf7.DataField = "ErrandDate"; cbf7.SortExpression = "Cre. date"; cbf7.Visible = colOrder.Visible; gridview.Columns.Add(cbf7); break; case "DUE_DATE": CustomBoundField cbf8 = new CustomBoundField(); cbf8.HeaderID = "DUE_DATE"; cbf8.HeaderText = "Due date"; cbf8.DataField = "TimeoutDate"; cbf8.SortExpression = "Due date"; cbf8.Visible = colOrder.Visible; gridview.Columns.Add(cbf8); break; case "RESPONSIBLE_AREA": CustomBoundField cbf9 = new CustomBoundField(); cbf9.HeaderID = "RESPONSIBLE_AREA"; cbf9.HeaderText = "Resp. area"; cbf9.DataField = "ResponsibleArea"; cbf9.SortExpression = "Resp. area"; cbf9.Visible = colOrder.Visible; gridview.Columns.Add(cbf9); break; case "DELSITEADDRESS": CustomBoundField cbf10 = new CustomBoundField(); cbf10.HeaderID = "DELSITEADDRESS"; cbf10.HeaderText = "Del. site addr."; cbf10.DataField = "DeliverySiteAddress"; cbf10.SortExpression = "Del. site addr."; cbf10.Visible = colOrder.Visible; gridview.Columns.Add(cbf10); break; case "ATTACHMENT": CustomBoundField cbf11 = new CustomBoundField(); cbf11.HeaderID = "ATTACHMENT"; cbf11.HeaderText = "Appendix"; cbf11.DataField = "Filename"; cbf11.SortExpression = "Appendix"; cbf11.Visible = colOrder.Visible; gridview.Columns.Add(cbf11); break; case "CUSTNUM": CustomBoundField cbf12 = new CustomBoundField(); cbf12.HeaderID = "CUSTNUM"; cbf12.HeaderText = "Cust. num"; cbf12.DataField = "CustomerNumber"; cbf12.SortExpression = "Cust. num"; cbf12.Visible = colOrder.Visible; gridview.Columns.Add(cbf12); break; case "HEADER": CustomBoundField cbf13 = new CustomBoundField(); cbf13.HeaderID = "HEADER"; cbf13.HeaderText = "Header"; cbf13.DataField = "Header"; cbf13.SortExpression = "Header"; cbf13.Visible = colOrder.Visible; gridview.Columns.Add(cbf13); break; default: throw new Exception("Unknown id in the column order list."); } } }