Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. Web Development
  3. ASP.NET
  4. How to get colour template?

How to get colour template?

Scheduled Pinned Locked Moved ASP.NET
databasehelptutorialquestion
12 Posts 2 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • R Offline
    R Offline
    Raymond Ooi
    wrote on last edited by
    #1

    I want to do something similar in window based application, which can allow the user to pick the colour from the colour template, is there any references or anyone can help? By the way, i save some colour codes into the database, when i retrieve it by using dropdownlist, is there possible to make it each item in drop down list display each different colour? Willing for your answer...

    Richard DeemingR 1 Reply Last reply
    0
    • R Raymond Ooi

      I want to do something similar in window based application, which can allow the user to pick the colour from the colour template, is there any references or anyone can help? By the way, i save some colour codes into the database, when i retrieve it by using dropdownlist, is there possible to make it each item in drop down list display each different colour? Willing for your answer...

      Richard DeemingR Offline
      Richard DeemingR Offline
      Richard Deeming
      wrote on last edited by
      #2

      For Internet Explorer only:

      <object
      id="dlgHelper"
      classid="clsid:3050f819-98b5-11cf-bb82-00aa00bdce0b"
      width="0px"
      height="0px"></object>

      <script language="javascript">
      <!--
      function selectColor(color)
      {
      var ret = dlgHelper.ChooseColorDlg(color);
      ret = ret.toString(16);
      if (ret.length < 6)
      {
      var temp = "000000".substring(0, 6 - ret.length);
      ret = temp.concat(ret);
      }
      return "#" + ret;
      }
      //-->
      </script>

      To set the colour of an item in the list, use the background-color and color style attributes:

      <select size="1">
      <option
      value="black"
      style="background-color:black; color:white;">
      Black
      </option>
      <option
      value="green"
      style="background-color:green;">
      Green
      </option>
      </select>


      "These people looked deep within my soul and assigned me a number based on the order in which I joined." - Homer

      "These people looked deep within my soul and assigned me a number based on the order in which I joined" - Homer

      R 2 Replies Last reply
      0
      • Richard DeemingR Richard Deeming

        For Internet Explorer only:

        <object
        id="dlgHelper"
        classid="clsid:3050f819-98b5-11cf-bb82-00aa00bdce0b"
        width="0px"
        height="0px"></object>

        <script language="javascript">
        <!--
        function selectColor(color)
        {
        var ret = dlgHelper.ChooseColorDlg(color);
        ret = ret.toString(16);
        if (ret.length < 6)
        {
        var temp = "000000".substring(0, 6 - ret.length);
        ret = temp.concat(ret);
        }
        return "#" + ret;
        }
        //-->
        </script>

        To set the colour of an item in the list, use the background-color and color style attributes:

        <select size="1">
        <option
        value="black"
        style="background-color:black; color:white;">
        Black
        </option>
        <option
        value="green"
        style="background-color:green;">
        Green
        </option>
        </select>


        "These people looked deep within my soul and assigned me a number based on the order in which I joined." - Homer

        R Offline
        R Offline
        Raymond Ooi
        wrote on last edited by
        #3

        Then how can i capture which colour the user has selected? I'm working on ASP.net with C# code, can u show me the simple code? Million thanks =)

        Richard DeemingR 1 Reply Last reply
        0
        • R Raymond Ooi

          Then how can i capture which colour the user has selected? I'm working on ASP.net with C# code, can u show me the simple code? Million thanks =)

          Richard DeemingR Offline
          Richard DeemingR Offline
          Richard Deeming
          wrote on last edited by
          #4

          You would need to store the selected colour in a field on the form, and post it back to the server. For example:

          <%@ Import Namespace="System.Drawing" %>
          <script language="c#" runat="server">
          private void cmdTest_Click(object sender, EventArgs e)
          {
          Color c = ColorTranslator.FromHtml(bgcolor.Text);

          if (Color.Empty == c)
          {
              lblColor.Text = "Please select a colour!";
          }
          else
          {
              lblColor.Text = "You selected " + ColorTranslator.ToHtml(c);
              bgcolor.BackColor = c;
          }
          

          }
          </script>

          <html>
          <head>
          <title>Test Colour Picker</title>

          <script language="javascript">
          <!--
          function chooseColor()
          {
          var txt = document.getElementById('bgcolor');
          if (!txt) return;

          var color = selectColor(txt.value);
          txt.value = color;
          txt.style.backgroundColor = color;
          

          }

          function selectColor(color)
          {
          var ret = dlgHelper.ChooseColorDlg(color);
          ret = ret.toString(16);
          if (ret.length < 6)
          {
          var temp = "000000".substring(0, 6 - ret.length);
          ret = temp.concat(ret);
          }
          return "#" + ret;
          }
          //-->
          </script>

          </head>
          <body>

          <object
          id="dlgHelper"
          classid="clsid:3050f819-98b5-11cf-bb82-00aa00bdce0b"
          width="0px" height="0px"></object>

          <form runat="server">

          <label for="bgcolor"><u>B</u>ackground color:</label>
          <asp:textbox
          id="bgcolor" runat="server"
          text="#ffffff" accesskey="B" readonly="true" />
          <button onclick="chooseColor()">...</button>
          <br />
          <asp:button
          id="cmdTest" runat="server"
          text="Update" onclick="cmdTest_Click" />
          <br />
          <asp:literal id="lblColor" runat="server" />

          </form>
          </body>
          </html>


          "These people looked deep within my soul and assigned me a number based on the order in which I joined." - Homer

          "These people looked deep within my soul and assigned me a number based on the order in which I joined" - Homer

          R 2 Replies Last reply
          0
          • Richard DeemingR Richard Deeming

            You would need to store the selected colour in a field on the form, and post it back to the server. For example:

            <%@ Import Namespace="System.Drawing" %>
            <script language="c#" runat="server">
            private void cmdTest_Click(object sender, EventArgs e)
            {
            Color c = ColorTranslator.FromHtml(bgcolor.Text);

            if (Color.Empty == c)
            {
                lblColor.Text = "Please select a colour!";
            }
            else
            {
                lblColor.Text = "You selected " + ColorTranslator.ToHtml(c);
                bgcolor.BackColor = c;
            }
            

            }
            </script>

            <html>
            <head>
            <title>Test Colour Picker</title>

            <script language="javascript">
            <!--
            function chooseColor()
            {
            var txt = document.getElementById('bgcolor');
            if (!txt) return;

            var color = selectColor(txt.value);
            txt.value = color;
            txt.style.backgroundColor = color;
            

            }

            function selectColor(color)
            {
            var ret = dlgHelper.ChooseColorDlg(color);
            ret = ret.toString(16);
            if (ret.length < 6)
            {
            var temp = "000000".substring(0, 6 - ret.length);
            ret = temp.concat(ret);
            }
            return "#" + ret;
            }
            //-->
            </script>

            </head>
            <body>

            <object
            id="dlgHelper"
            classid="clsid:3050f819-98b5-11cf-bb82-00aa00bdce0b"
            width="0px" height="0px"></object>

            <form runat="server">

            <label for="bgcolor"><u>B</u>ackground color:</label>
            <asp:textbox
            id="bgcolor" runat="server"
            text="#ffffff" accesskey="B" readonly="true" />
            <button onclick="chooseColor()">...</button>
            <br />
            <asp:button
            id="cmdTest" runat="server"
            text="Update" onclick="cmdTest_Click" />
            <br />
            <asp:literal id="lblColor" runat="server" />

            </form>
            </body>
            </html>


            "These people looked deep within my soul and assigned me a number based on the order in which I joined." - Homer

            R Offline
            R Offline
            Raymond Ooi
            wrote on last edited by
            #5

            wow, it works great.. millions thanks =) Can i share with someone else in other forum? coz i saw that they are ppl looking for this help as well... =)

            Richard DeemingR 1 Reply Last reply
            0
            • Richard DeemingR Richard Deeming

              You would need to store the selected colour in a field on the form, and post it back to the server. For example:

              <%@ Import Namespace="System.Drawing" %>
              <script language="c#" runat="server">
              private void cmdTest_Click(object sender, EventArgs e)
              {
              Color c = ColorTranslator.FromHtml(bgcolor.Text);

              if (Color.Empty == c)
              {
                  lblColor.Text = "Please select a colour!";
              }
              else
              {
                  lblColor.Text = "You selected " + ColorTranslator.ToHtml(c);
                  bgcolor.BackColor = c;
              }
              

              }
              </script>

              <html>
              <head>
              <title>Test Colour Picker</title>

              <script language="javascript">
              <!--
              function chooseColor()
              {
              var txt = document.getElementById('bgcolor');
              if (!txt) return;

              var color = selectColor(txt.value);
              txt.value = color;
              txt.style.backgroundColor = color;
              

              }

              function selectColor(color)
              {
              var ret = dlgHelper.ChooseColorDlg(color);
              ret = ret.toString(16);
              if (ret.length < 6)
              {
              var temp = "000000".substring(0, 6 - ret.length);
              ret = temp.concat(ret);
              }
              return "#" + ret;
              }
              //-->
              </script>

              </head>
              <body>

              <object
              id="dlgHelper"
              classid="clsid:3050f819-98b5-11cf-bb82-00aa00bdce0b"
              width="0px" height="0px"></object>

              <form runat="server">

              <label for="bgcolor"><u>B</u>ackground color:</label>
              <asp:textbox
              id="bgcolor" runat="server"
              text="#ffffff" accesskey="B" readonly="true" />
              <button onclick="chooseColor()">...</button>
              <br />
              <asp:button
              id="cmdTest" runat="server"
              text="Update" onclick="cmdTest_Click" />
              <br />
              <asp:literal id="lblColor" runat="server" />

              </form>
              </body>
              </html>


              "These people looked deep within my soul and assigned me a number based on the order in which I joined." - Homer

              R Offline
              R Offline
              Raymond Ooi
              wrote on last edited by
              #6

              By the way, do you is it possible to make each item in dropdown list has its own different background colour?

              Richard DeemingR 1 Reply Last reply
              0
              • R Raymond Ooi

                wow, it works great.. millions thanks =) Can i share with someone else in other forum? coz i saw that they are ppl looking for this help as well... =)

                Richard DeemingR Offline
                Richard DeemingR Offline
                Richard Deeming
                wrote on last edited by
                #7

                Feel free! :-D


                "These people looked deep within my soul and assigned me a number based on the order in which I joined." - Homer

                "These people looked deep within my soul and assigned me a number based on the order in which I joined" - Homer

                1 Reply Last reply
                0
                • R Raymond Ooi

                  By the way, do you is it possible to make each item in dropdown list has its own different background colour?

                  Richard DeemingR Offline
                  Richard DeemingR Offline
                  Richard Deeming
                  wrote on last edited by
                  #8

                  Look at the second half of my original response. ;)


                  "These people looked deep within my soul and assigned me a number based on the order in which I joined." - Homer

                  "These people looked deep within my soul and assigned me a number based on the order in which I joined" - Homer

                  1 Reply Last reply
                  0
                  • Richard DeemingR Richard Deeming

                    For Internet Explorer only:

                    <object
                    id="dlgHelper"
                    classid="clsid:3050f819-98b5-11cf-bb82-00aa00bdce0b"
                    width="0px"
                    height="0px"></object>

                    <script language="javascript">
                    <!--
                    function selectColor(color)
                    {
                    var ret = dlgHelper.ChooseColorDlg(color);
                    ret = ret.toString(16);
                    if (ret.length < 6)
                    {
                    var temp = "000000".substring(0, 6 - ret.length);
                    ret = temp.concat(ret);
                    }
                    return "#" + ret;
                    }
                    //-->
                    </script>

                    To set the colour of an item in the list, use the background-color and color style attributes:

                    <select size="1">
                    <option
                    value="black"
                    style="background-color:black; color:white;">
                    Black
                    </option>
                    <option
                    value="green"
                    style="background-color:green;">
                    Green
                    </option>
                    </select>


                    "These people looked deep within my soul and assigned me a number based on the order in which I joined." - Homer

                    R Offline
                    R Offline
                    Raymond Ooi
                    wrote on last edited by
                    #9

                    What if i store the colour of each item in db, how can i call it out and bind it to the dropdownlist with each item in the list has different color background?? Apart from that, do you think is it possible make the same effect in a radiobuttonlist? Thanks again.. :)

                    Richard DeemingR 1 Reply Last reply
                    0
                    • R Raymond Ooi

                      What if i store the colour of each item in db, how can i call it out and bind it to the dropdownlist with each item in the list has different color background?? Apart from that, do you think is it possible make the same effect in a radiobuttonlist? Thanks again.. :)

                      Richard DeemingR Offline
                      Richard DeemingR Offline
                      Richard Deeming
                      wrote on last edited by
                      #10

                      The list controls in the System.Web.UI.WebControls namespace don't support adding attributes to the individual items. You would need to write your own control to add support for the item styles. For example, the DropDownList would be quite simple:

                      using System;
                      using System.Drawing;
                      using System.Web.UI;
                      using System.Web.UI.WebControls;

                      public class ColorDropDownList : DropDownList
                      {
                      protected override void RenderContents(HtmlTextWriter writer)
                      {
                      bool seenSelected = false;

                          for (int i=0; i<Items.Count; i++)
                          {
                              ListItem item = Items\[i\];
                              
                              writer.AddAttribute("value", item.Value);
                              
                              if (item.Selected)
                              {
                                  if (seenSelected)
                                      throw new InvalidOperationException(
                                          "Can't have multiple selected items!");
                                  
                                  writer.AddAttribute("selected", "selected");
                                  seenSelected = true;
                              }
                              
                              item.Attributes.AddAttributes(writer);
                              
                              writer.RenderBeginTag("option");
                              HttpUtility.HtmlEncode(item.Text, writer);
                              writer.RenderEndTag();
                          }
                      }
                      

                      }

                      ...
                      // Bind the list
                      list.DataBind();

                      // Set the style attribute for each item
                      for(int i=0; i<list.Items.Count; i++)
                      {
                          ListItem item = list.Items\[i\];
                          
                          Color c = ColorTranslator.FromHtml(item.Value);
                          if (Color.Empty != c)
                          {
                              string style = "background-color: " + item.Value + ";";
                              if (c.GetBrightness() < 0.4)
                                  style += "color: white;";
                              
                              item.Attributes\["style"\] = style;
                          }
                      }
                      

                      ...

                      The ListBox would be very similar - you would just need to allow multiple selected items if the SelectionMode was ListSelectionMode.Multiple. The other list controls are more complicated. You would have to override the entire rendering of the control to add support for item styles. If you wanted built-in support for data-binding the attributes, you would need to override the OnDataBinding method, which would be much more complicated.


                      "These people looked deep within my soul and assigned me a number based on the order in which I joined." - Homer

                      "These people looked deep within my soul and assigned me a number based on the order in which I joined" - Homer

                      R 1 Reply Last reply
                      0
                      • Richard DeemingR Richard Deeming

                        The list controls in the System.Web.UI.WebControls namespace don't support adding attributes to the individual items. You would need to write your own control to add support for the item styles. For example, the DropDownList would be quite simple:

                        using System;
                        using System.Drawing;
                        using System.Web.UI;
                        using System.Web.UI.WebControls;

                        public class ColorDropDownList : DropDownList
                        {
                        protected override void RenderContents(HtmlTextWriter writer)
                        {
                        bool seenSelected = false;

                            for (int i=0; i<Items.Count; i++)
                            {
                                ListItem item = Items\[i\];
                                
                                writer.AddAttribute("value", item.Value);
                                
                                if (item.Selected)
                                {
                                    if (seenSelected)
                                        throw new InvalidOperationException(
                                            "Can't have multiple selected items!");
                                    
                                    writer.AddAttribute("selected", "selected");
                                    seenSelected = true;
                                }
                                
                                item.Attributes.AddAttributes(writer);
                                
                                writer.RenderBeginTag("option");
                                HttpUtility.HtmlEncode(item.Text, writer);
                                writer.RenderEndTag();
                            }
                        }
                        

                        }

                        ...
                        // Bind the list
                        list.DataBind();

                        // Set the style attribute for each item
                        for(int i=0; i<list.Items.Count; i++)
                        {
                            ListItem item = list.Items\[i\];
                            
                            Color c = ColorTranslator.FromHtml(item.Value);
                            if (Color.Empty != c)
                            {
                                string style = "background-color: " + item.Value + ";";
                                if (c.GetBrightness() < 0.4)
                                    style += "color: white;";
                                
                                item.Attributes\["style"\] = style;
                            }
                        }
                        

                        ...

                        The ListBox would be very similar - you would just need to allow multiple selected items if the SelectionMode was ListSelectionMode.Multiple. The other list controls are more complicated. You would have to override the entire rendering of the control to add support for item styles. If you wanted built-in support for data-binding the attributes, you would need to override the OnDataBinding method, which would be much more complicated.


                        "These people looked deep within my soul and assigned me a number based on the order in which I joined." - Homer

                        R Offline
                        R Offline
                        Raymond Ooi
                        wrote on last edited by
                        #11

                        Thanks a lot.. where can i find the related references on this? :)

                        Richard DeemingR 1 Reply Last reply
                        0
                        • R Raymond Ooi

                          Thanks a lot.. where can i find the related references on this? :)

                          Richard DeemingR Offline
                          Richard DeemingR Offline
                          Richard Deeming
                          wrote on last edited by
                          #12

                          I've not seen anything, but it's not too hard to figure out from the code for the existing controls. Have a look at http://www.saurik.com/net/exemplar/[^] and http://www.aisto.com/roeder/dotnet/[^] for tools to get at the code.


                          "These people looked deep within my soul and assigned me a number based on the order in which I joined." - Homer

                          "These people looked deep within my soul and assigned me a number based on the order in which I joined" - Homer

                          1 Reply Last reply
                          0
                          Reply
                          • Reply as topic
                          Log in to reply
                          • Oldest to Newest
                          • Newest to Oldest
                          • Most Votes


                          • Login

                          • Don't have an account? Register

                          • Login or register to search.
                          • First post
                            Last post
                          0
                          • Categories
                          • Recent
                          • Tags
                          • Popular
                          • World
                          • Users
                          • Groups