protected override void CreateChildControls() { base.CreateChildControls(); var infoImgUrl = this.Page.ClientScript.GetWebResourceUrl(this.GetType(), "Samples.Web.UI.Controls.Images.info-icon.jpg"); this.infoImage = new Image { ID = this.ID + "InfoImage" }; this.infoImage.Attributes["src"] = infoImgUrl; this.infoImage.Attributes["style"] = Resources.TooltipIconStyle; this.Controls.Add(this.infoImage); this.tooltipContent = new Panel { ID = this.ID + "TooltipContent" }; this.tooltipContent.Attributes["style"] = Resources.TooltipContentStyle; this.tooltipContent.Controls.Add(new LiteralControl(this.Text)); this.Controls.Add(this.tooltipContent); this.tooltipExtender = new HoverMenuExtender { TargetControlID = this.infoImage.ID, PopupControlID = this.tooltipContent.ID, OffsetX = 15, PopupPosition = HoverMenuPopupPosition.Right, PopDelay = 50 }; this.Controls.Add(this.tooltipExtender); }
protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { HoverMenuExtender hoveMenu = (HoverMenuExtender)e.Row.FindControl("hoverMenu"); e.Row.ID = e.Row.RowIndex.ToString(); hoveMenu.TargetControlID = e.Row.ID; } }
// public bool IsButton { get; set; } //public string OnClick { get; set; } public void GenerateHtml(StringBuilder sb, string clientID, ExtenderAjaxControl extenderAjaxControl, bool isButton) { if (Items.Count <= 0) { RenderLink(sb); return; } if (isButton) { sb.Append("<span id=\""); sb.Append(clientID); sb.Append("\" class=\"menuMoreAsButton\""); sb.Append(" title=\""); sb.Append(ToolTip); sb.Append("\"><u>"); if (!string.IsNullOrEmpty(Url)) { RenderLink(sb); } else { sb.Append(TextAsHtml ? Text : HttpUtility.HtmlAttributeEncode(Text)); } sb.Append("</u> <small>▼</small></span>"); sb.Append("<table id=\"mp_"); sb.Append(clientID); sb.Append("\" class=\"menuPanel\">"); } else { sb.Append("<tr id=\""); sb.Append(clientID); sb.Append("\" class=\"menuMore\""); sb.Append(" title=\""); sb.Append(ToolTip); sb.Append("\"><td><u>"); if (!string.IsNullOrEmpty(Url)) { RenderLink(sb); } else { sb.Append(TextAsHtml ? Text : HttpUtility.HtmlAttributeEncode(Text)); } sb.Append("</u> </td><td width=\"10px\"><small>▼</small>"); sb.Append("<table id=\"mp_"); sb.Append(clientID); sb.Append("\" class=\"menuPanel\">"); } int i = 0; foreach (var item in Items) { if (item.Items.Count == 0) { sb.Append("<tr class=\"menuItem\"><td>"); } item.GenerateHtml(sb, clientID + i, extenderAjaxControl, false); sb.Append("</td></tr>"); i++; } sb.Append("</table>"); var extender = new HoverMenuExtender { ID = "hme_" + clientID, PopupControlID = "mp_" + clientID, PopupPosition = PopupPosition, PopDelay = 200, OffsetX = 0, OffsetY = 0, }; extenderAjaxControl.AddExtender(extender, clientID); }
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { ddlCounties.DataBind(); ddlCounties.SelectedValue = "Burke"; } string countyName = (string)ddlCounties.SelectedItem.Text; string sql; sql = "SELECT Price, Bed, Bath, SquareFeet, Address, City, State, Zip, Pic1, NextOpenHouse FROM Properties WHERE County = '" + countyName + "'"; //query string SqlConnection sqlConnection1 = new SqlConnection("Data Source=(LocalDB)\\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\\RealEstateDB.mdf;Integrated Security=True"); //connection string SqlCommand cmd = new SqlCommand(sql, sqlConnection1); //sql command sqlConnection1.Open(); SqlDataReader reader = cmd.ExecuteReader(); //used to read through returned rows object[] rowArray = new object[10]; //object array for row values int houseCount = 0; while (reader.Read()) //read through all returned rows { rowArray[0] = reader[0]; //Price rowArray[1] = reader[1]; //bed rowArray[2] = reader[2]; //bath rowArray[3] = reader[3]; //sqft rowArray[4] = reader[4]; //addr rowArray[5] = reader[5]; //city rowArray[6] = reader[6]; //state rowArray[7] = reader[7]; //zip rowArray[8] = reader[8]; //pic1 rowArray[9] = reader[9]; //next open house houseCount++; HtmlGenericControl createDiv = new HtmlGenericControl("DIV");//create div element createDiv.ID = "createDiv" + houseCount; createDiv.Attributes["runat"] = "server"; createDiv.Attributes["class"] = "col-sm-3 createDiv"; ImageButton img = new ImageButton();//create imageButton if (Convert.IsDBNull(rowArray[8])) { rowArray[8] = "no-image-available-icon.jpg"; } img.ID = (string)rowArray[8]; img.Click += imgBtn_Click; img.ImageUrl = "~/Images/" + rowArray[8]; //img.PostBackUrl = "House.aspx"; img.Width = 248; img.Height = 248; createDiv.Controls.Add(img); Panel popUpPanel = new Panel();//hidden pop up panel popUpPanel.ID = "popUpPanel" + houseCount; popUpPanel.Attributes["runat"] = "server"; popUpPanel.Attributes["style"] = "display:none"; popUpPanel.BackColor = Color.PowderBlue; popUpPanel.BorderStyle = BorderStyle.Solid; popUpPanel.Width = 248; HoverMenuExtender hoverMenuExtender = new HoverMenuExtender();//hover menu hoverMenuExtender.ID = "hoverMenuExtender" + houseCount; hoverMenuExtender.TargetControlID = (string)rowArray[8]; hoverMenuExtender.PopupControlID = "popUpPanel" + houseCount; hoverMenuExtender.PopupPosition = AjaxControlToolkit.HoverMenuPopupPosition.Top; HtmlGenericControl priceLbl = new HtmlGenericControl("LABEL");//create price label priceLbl.InnerHtml = "Price: " + string.Format("{0:C}", rowArray[0]) + "</br>"; createDiv.Controls.Add(priceLbl); HtmlGenericControl sqft = new HtmlGenericControl("LABEL");// create sqft label sqft.InnerHtml = "Square feet: " + rowArray[3].ToString() + "</br>"; createDiv.Controls.Add(sqft); HtmlGenericControl bed = new HtmlGenericControl("LABEL");//create bed label bed.InnerHtml = "Bed: " + rowArray[1].ToString() + "</br>"; popUpPanel.Controls.Add(bed); HtmlGenericControl bath = new HtmlGenericControl("LABEL");//create bath label bath.InnerHtml = "Bath: " + rowArray[2].ToString() + "</br>"; popUpPanel.Controls.Add(bath); HtmlGenericControl address = new HtmlGenericControl("LABEL");//address address.InnerHtml = rowArray[4].ToString() + ", "; popUpPanel.Controls.Add(address); HtmlGenericControl city = new HtmlGenericControl("LABEL");//city city.InnerHtml = rowArray[5].ToString(); popUpPanel.Controls.Add(city); HtmlGenericControl state = new HtmlGenericControl("LABEL");//state state.InnerHtml = rowArray[6].ToString() + "</br>"; popUpPanel.Controls.Add(state); HtmlGenericControl zip = new HtmlGenericControl("LABEL");//zip zip.InnerHtml = rowArray[7].ToString() + "</br></br>"; popUpPanel.Controls.Add(zip); HtmlGenericControl openHouse = new HtmlGenericControl("LABEL");//open house openHouse.InnerHtml = "Next open house:</br>" + rowArray[9].ToString() + "</br></br>"; popUpPanel.Controls.Add(openHouse); ContentArea.Controls.Add(hoverMenuExtender); ContentArea.Controls.Add(popUpPanel); ContentArea.Controls.Add(createDiv);//add div to panel on page } reader.Close(); sqlConnection1.Close(); }