Usercontrol, add styles via Page.Header.Attributes ?

Discussion in 'ASP .Net Building Controls' started by Edwin Knoppert, Dec 6, 2006.

  1. I want to add styles to the current page from within a usercontrol the
    correct(better) way.
    So i would like to insert the styles in the page head.

    Any good approach?
     
    Edwin Knoppert, Dec 6, 2006
    #1
    1. Advertisements

  2. I would recommend against this, unless the only purpose of the user control
    is to change styles. In general, the page should set the styles, not the
    controls.

    John
     
    John Saunders, Dec 6, 2006
    #2
    1. Advertisements

  3. I need specific styles for controls inside a gridview template.
    Since these are ASP.NET controls they expect a classname, not one or more
    styles.
    (Which can be set via code as well)

    I have > 8 styles to set, so alternatives are pretty cumbersome imo.
    (We keep the server working this way, instead of the client's browser only)
     
    Edwin Knoppert, Dec 6, 2006
    #3
  4. I don't understand your problem. We also use CSS classes very heavily. We
    have our controls reference the classes via CssClass on a server control or
    "class" on a client tag. We then have the pages reference the .css files
    containing the definitions of the classes. We have a base page class which
    emits the correct <link> tags on every page. This works well, without a
    control attempting to set styles for the page (which is a lot like the tail
    wagging the dog).

    John
     
    John Saunders, Dec 7, 2006
    #4
  5. First, i'm not sure i posted this in the correct group, there is a
    webcontrols group as well, my current problem applies to a custom control
    for asp.net (therefore the styles of course :) )

    --------

    The idea is that i would like to prepare self-contained controls and
    therefore i don't prefer seperate css files.
    I was wrong yesterday by mentioning using the server tag for each control to
    add styles dynamically to each control.
    I just put a styles section directly into my usercontrol html part, it works
    but it's not recommended.
    Styles should be in the head and preferrable as include.
    Well i know that there are webresources but my knowledge about this all is
    not that far yet + the usercontrol is not a compiled control since it still
    depends to much on the project.
    (Like database tables and fields etc + there is no need)
    Therefore i choose for styles in the html, the easy way..

    I'm just figuring out how to deal with things, it's not all that trivial.

    And then there is the problem of recurring insertions, meaning multiple
    instances of my usercontrol on the same page would then insert duplicate
    styles (and javascript code) with the same name(s).

    For js there is this asp.net solution to register functionality which
    results into one codeblock on multiple inserts.
    Maybe this is also available with styles??

    There are several solutions, i'm working slowly to a better approach with
    respect to the complete control, not only this styles issue.
    Most of my usercontrols are never required outside the project, it would
    cost to much time to make them stand-alone anyway.
     
    Edwin Knoppert, Dec 7, 2006
    #5
  6. Edwin Knoppert

    gerry Guest

    I have used RegisterStartupScript to inject styles into a web page from a
    custom control - just specify that the surrounding script tags should not be
    generated.
    This does stick the style data at the bottom of the page ( right before the
    </form> tag I beleive ) but I haven't seen any browsers so far that had any
    problem with style blocks outside of the head block.

    Gerry
     
    gerry, Dec 7, 2006
    #6
  7. Edwin Knoppert

    gerry Guest

    just a note
    after that last post i wondered why I had used RegisterStartupScript as
    opposed to RegisterClientScriptBlock
    so I made the change to RegisterClientScriptBlock
    this works just as well , the only difference is that the block is inserted
    at the top of the page just below the viewstate div.

    Gerry
     
    gerry, Dec 7, 2006
    #7
  8. Hmm, we might need some more fokes over here :)

    RegisterStartupScript, well i don't know all these Register.. stuff yet, but
    there are a few afaik.
    Of course, there is still the issue of duplicated (multiple) styles with the
    same name.
    I was wondering if some how we could make this more unique, i can.. manually
    but maybe the system offers better stuff.
     
    Edwin Knoppert, Dec 7, 2006
    #8
  9. Edwin Knoppert

    gerry Guest

    i'm not sure if this what you mean by 'duplicate styles' or 'more unique'
    but you can ensure that a style block is included only once in the page by
    using IsClientScriptBlockRegistered before calling RegisterClientScriptBlock

    as far as not knowing 'all these Register stuff yet' the docs are a
    wonderful thing and google is just a click away
     
    gerry, Dec 7, 2006
    #9
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.