2010-02-11 3 views
9

나는 테이블의 내부에 아래의 코드를 사용하고 나타납니다 코드가 사이트에 표시되면가 왜 ASP : DropDownList로와 ASP : 같은 폭의 텍스트 상자 다르게

<tr> 
    <td>User Language:</td> 
    <td> 
     <asp:DropDownList ID="Language" runat="server" Width="200px"> 
      <asp:ListItem Selected="True">English</asp:ListItem> 
     </asp:DropDownList> 
    </td> 
</tr> 
<tr> 
    <td><span class="important">*</span>Company:</td> 
    <td><asp:TextBox ID="Company" runat="server" width="200px" /></td> 
</tr> 

<asp:Textbox> 제어가 205px이고, <asp:DropDownList>은 200px입니다. 그 원인은 무엇입니까? 둘 다 200px 너비로 설정됩니다.

+0

어떤 브라우저가 있습니까? 파이어 폭스? – SLaks

답변

18

텍스트 상자의 테두리가 2px이고 양쪽에 1px의 여백이 있기 때문에.

+0

정답입니다. – SLaks

+0

실례합니다. Google 크롬 (버전 : 59.0.3071.86)을 사용합니다. 페이지를 검사 할 때 텍스트 상자의 너비가 DropDownList (200px)보다 ** 4px ** more (204px)라고합니다. (그래서 심지어 2px + 1px는 3px, 여전히 1px입니다!) – user3454439

1

드롭 다운의 크기가 사용자가 제공하는 크기와 관련하여 조정됩니다. 따라서 옵션이 길면 더 오래 걸릴 것입니다. 또한 오른쪽 구석 인 화살표에 더 많은 공간이 필요합니다.

0

드롭 다운 목록에 데이터를 삽입하면 너비 속성을 설정하지 않으면 크기가 조정되지만 너비를 설정하면 크기가 조정되지 않습니다.

1

상당히 관련,하지만 여기에 도로의 아래 당신에게 두통을 많이 절약 할 수 빠른 팁의 안 : 텍스트 상자 또는 ASP : DropDownList로

< 텍스트 상자 RUNAT = 서버>

는 절대 ASP 사용하지는 < select runat = server>는 필요할 때마다 작동하며, 제대로 작동하지 않는 "너비"와 같은 혼란스러운 속성을 추가하지 않습니다.

CSS 클래스로 실제 HTML 태그를 사용하고 실제로는 백엔드에서 엉망으로 만들려는 대상에만 runat = server를 추가하십시오.

+0

좋은 조언이십니까? 이러한 통제가 존재해야하는 이유가 있어야합니다. HTML 텍스트 상자와 드롭 다운리스트를 데이터 바인딩 할 수 있습니까? –

+1

그들은 부분적으로 일관성을 위해 존재하지만 주로 드래그 앤 드롭 웹 폼의 초기 ASP.NET 아이디어를 지원합니다. 사람들은 현명하게 유지 보수가 불가능한 코드로 드래그 & 드롭하는 것을 피하지만 때때로 모든 HTML 태그는 runat = server를 지원하므로 asp : equivilants를 사용할 필요가 없습니다. –

+0

네 질문에 답하면 HtmlSelect에는 .DataSource 속성과 .DataBind() 메서드 및 Text 및 Value 멤버가 있습니다. –

관련 문제