Solved

SELECT format columns

Posted on 2002-05-28
12
154 Views
Last Modified: 2010-04-09
I have a SELECT listbox on a form that contains names and addresses. How can I make the address start at the same position/column ?

In VB I would put a tab character in the text, but I can't see anything like.

I'm using VB Webclasses to output the html stream. I could use a grid control, but it looks heavy going to format the grid each time.

Any suggestions ?

TIA

John

0
Comment
Question by:JohnHind
  • 4
  • 3
  • 2
  • +2
12 Comments
 
LVL 18

Expert Comment

by:bruno
Comment Utility
Don't think you can do what you are trying to do all within the same SELECT...

can we see a code snippet?


BRUNO
0
 
LVL 22

Expert Comment

by:CJ_S
Comment Utility
JohnHind,
What do you mean? Doesn't make sense.

You want to position a couple of elements at the same place? What elements?

You might be able to use layers and position them above each other.

I don't really get what you want. Tell us more.

CJ
0
 
LVL 18

Expert Comment

by:bruno
Comment Utility
CJ,

I think I can remember something similar creating forms in Access...

you can show more than one value, almost like a select with different columns to it...


BRUNO
0
 
LVL 22

Expert Comment

by:CJ_S
Comment Utility
Oh that! :-)

try using the \t operand instead of a normal tab :-)

"\tblah"
0
 
LVL 51

Expert Comment

by:ahoffmann
Comment Utility
when you say "position/column", you mean identation, probably using whitespace left of text?
Then simple answer: not possible
     long answer: any method like using \t or %09 is not reliable, means it might work with a special browser of paricular version on uniq OS etc. etc.
IMHO, even using CSS is vasting time, unfortunately.

The only reliable method I know is to use printable characters, like a dash: -
0
 

Author Comment

by:JohnHind
Comment Utility
Here's the snippet. Basically, I need to change the commas for tabs, so I get columns - ie the addresses line up. Sounds like I can't do it.

<SELECT align=center id=lstMain size=20 name=lstMain style="WIDTH: 80%; HEIGHT: 60%"><option>Fred Smith, 1 The High Street, Nottingham<option>Joe Public, 2 Smith Street, Birmingham</SELECT>

John
0
Highfive + Dolby Voice = No More Audio Complaints!

Poor audio quality is one of the top reasons people don’t use video conferencing. Get the crispest, clearest audio powered by Dolby Voice in every meeting. Highfive and Dolby Voice deliver the best video conferencing and audio experience for every meeting and every room.

 
LVL 33

Expert Comment

by:knightEknight
Comment Utility
separate your columns with pipe symbols (|) and then convert the pipes to a pre-determined number of spaces like this:


<HTML>
<HEAD>
<SCRIPT language='javascript'>

 function padOptions(theSelect,L)
 {
   L = L||20;  // 20 by default, if L is not specified
   for ( var i=0,n=theSelect.options.length; i<n; i++ )
   {
      var ta = theSelect.options[i].text.split("|");
      for ( j=0,m=ta.length; j<m; j++ )
      {
         var D = L - ta[j].length;
         for ( var k=0; k<D; k++)
            ta[j] += " ";
      }
      theSelect.options[i].text = ta.join("");
   }

 }

</script>
</head>

<BODY onLoad='padOptions(document.myform.myselect,20);'>

<FORM name='myform'>
 <FONT face='courier new'>
 <SELECT name='myselect' style='font:9pt courier new;'>
  <OPTION>col1|col2</option>
  <OPTION>column1|column2</option>
  <OPTION>This Is Column1|This Is Column2</option>
 </select>
 </font>
</form>

</body>
</html>


(I tested this in IE5+ and NS6 ... I doubt it will work in NS4)
0
 
LVL 33

Expert Comment

by:knightEknight
Comment Utility
Sorry, I didn't see your last post until after I posted ... if you want to use commas instead, then change this:

   var ta = theSelect.options[i].text.split("|");

to this:

   var ta = theSelect.options[i].text.split(",");
0
 
LVL 33

Expert Comment

by:knightEknight
Comment Utility
also note the fixed-face font ... this is necessary.
0
 
LVL 22

Expert Comment

by:CJ_S
Comment Utility
You can also use the &nbsp; character to indicate 1 space. Works in most cases.

0
 
LVL 33

Accepted Solution

by:
knightEknight earned 250 total points
Comment Utility
yeah, I tried that, but when you set it using javascript, it actually shows the &nbsp; in the select ... which is what lead me to use a regular space instead.  But, if you want to "pad" the options from the server (instead of using the javascript function) then you would have to use the &nbsp;

Also, for your data, you will probably want to use a number bigger than 20 (which I used) to pad your data columns.
0
 

Author Comment

by:JohnHind
Comment Utility
I'll give that a go.

thanks
John
0

Featured Post

Maximize Your Threat Intelligence Reporting

Reporting is one of the most important and least talked about aspects of a world-class threat intelligence program. Here’s how to do it right.

Join & Write a Comment

Introduction The Google Maps API offers various ways to draw dynamic and static maps.  Using a combination of PHP and JavaScript, you can draw active JavaScript maps that allow pan-and-zoom in the client browser window.  You can also draw "static" …
This article discusses how to create an extensible mechanism for linked drop downs.
In this tutorial viewers will learn how add a scalable full-width header using CSS3. Create a new HTML document with an internal stylesheet. Set a tiled background.:  Create a new div and name it Header. Position it with position:absolute at the top…
The viewer will learn the benefit of using external CSS files and the relationship between class and ID selectors. Create your external css file by saving it as style.css then set up your style tags: (CODE) Reference the nav tag and set your prop…

762 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

7 Experts available now in Live!

Get 1:1 Help Now