간만에 왔군요... ㅋㅋ

요즘 몇가지 일을 한꺼번에 하느라... 바쁘군요...

8월까지는 꼼짝마가 될 듯합니다.

그래도 틈틈히 할 건 해야겠기에... 또 무언가를 손에 들었습니다. ㅡㅡ'

 

C# 코드를 보다가 VB 로 코드를 바꾸는데 턱 하니 무언가에 부딪쳤습니다.

여러분들께는 기초적인 내용이겠지만... ㅋㅋㅋ

 

한참 찾았네요...

 

코드는 이렇습니다.


            var genres = new List<Genre>
            {
                new Genre { Name = "Rock" },
                new Genre { Name = "Jazz" },
                new Genre { Name = "Metal" },
                new Genre { Name = "Alternative" },
                new Genre { Name = "Disco" },
                new Genre { Name = "Blues" },
                new Genre { Name = "Latin" },
                new Genre { Name = "Reggae" },
                new Genre { Name = "Pop" },
                new Genre { Name = "Classical" }
            };

 

이걸 vb.net 코드로 ㅋㅋㅋ

어떤 분의 목소리가 들리는 듯 합니다.

이럴 거 뭐하러 vb.net으로 하냐고...

C# 으로 하라고... ㅋㅋ

하지만 그래도 가봅니다. ㅋㅋㅋ

 

다음은 이렇게 변환 합니다.

 

Dim genres1 As New List(Of Genre) From {
                New Genre With {.Name = "Rock"},
                New Genre With {.Name = "Jazz"},
                New Genre With {.Name = "Metal"},
                New Genre With {.Name = "Alternative"},
                New Genre With {.Name = "Disco"},
                New Genre With {.Name = "Blues"},
                New Genre With {.Name = "Latin"},
                New Genre With {.Name = "Reggae"},
                New Genre With {.Name = "Pop"},
                New Genre With {.Name = "Classical"}
                }

 

또는

 

            Dim genres As New List(Of Genre) From {
                New Genre("Rock"),
                New Genre("Jazz"),
                New Genre("Metal"),
                New Genre("Alternative"),
                New Genre("Disco"),
                New Genre("Blues"),
                New Genre("Latin"),
                New Genre("Reggae"),
                New Genre("Pop"),
                New Genre("Classical")
                }

 

요렇게요... ㅋㅋㅋ

두번째 코드는 parameter 가 있는 initializer 가 있어야 하는 거고요.

 

핵심은 From With 에 있습니다.

 

머리 나쁜 제가 또 까먹을 듯 하여 올려봅니다.

 

그럼 행복한 고수되십시요...

 

woojja ))*

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

반응형

간만에 포스팅 합니다. 한 오백만년은 된 듯합니다. ㅋㅋㅋ

요즘엔 asp.net 을 가지고 맨땅에 헤딩하느라 고생이 이만 저만이 아니네요... ㅋㅋㅋ
전 winform 개발자이고 싶은데 말이죠... 푸헤헤

여튼 Bug 라고 공식적으로 알려진 사항인데 저는 이제야 알았네요...

내용은 이렇습니다.

Repeater 나 ListView Server Control 의 itemTemplate 에 RadioButton 을 추가하게 되면 grouping 을 할 수 없습니다.

이유인 즉은 iNamingContainer 인터페이스를 구현하는 녀석들이라서라고 하네요.

iNamingContainer 인터페이스의 특징은 item Template 내부에 추가되는 컨트롤들은 고유의 name 속성을 가져야하는 데...

아시다 시피 radio 버튼을 Group으로 묶어 주기 위해서는 아래와 같이 name 속성을 동일하게 해야햐죠?

<input id="Radio1" type="radio" name="1" />
<input id="Radio2" type="radio" name="1" />
<input id="Radio3" type="radio" name="1" />
<input id="Radio4" type="radio" name="1" />
<input id="Radio5" type="radio" name="1" />


그런데 iNamingContainer 인터페이스 를 구현하는 녀석들은 name 속성이 고유하게 생성이 되서 Group 으로 묶이지 않는 것이었습니다.
asp.net RadioButton 서버컨트롤이 가지고 있는 GroupName 이라는 속성을 주더라도 소용이 없는 거죠... ㅋㅋ

아래의 Repeater 나 ListView 가
        <asp:Repeater ID="Repeater1" runat="server">
            <ItemTemplate>
                <asp:RadioButton id="RadioButton1" runat="server" GroupName="RB" Text="<%#Container.DataItem.ToString()%>">
                </asp:RadioButton><br>
            </ItemTemplate>
        </asp:Repeater>

HTML Tag 로 Rendering 된 모습을 보게되면 아래와 같습니다.
<input id="MainContent_Repeater1_RadioButton1_0" type="radio" name="ctl00$MainContent$Repeater1$ctl00$RB" value="RadioButton1" /><label for="MainContent_Repeater1_RadioButton1_0">Test Value 0</label><br>           
<input id="MainContent_Repeater1_RadioButton1_1" type="radio" name="ctl00$MainContent$Repeater1$ctl01$RB" value="RadioButton1" /><label for="MainContent_Repeater1_RadioButton1_1">Test Value 1</label><br>            
<input id="MainContent_Repeater1_RadioButton1_2" type="radio" name="ctl00$MainContent$Repeater1$ctl02$RB" value="RadioButton1" /><label for="MainContent_Repeater1_RadioButton1_2">Test Value 2</label><br>

name 속성의 값이 모두 다르죠?

이러니 Group 으로 묶을 수 있겠습니까? ㅋㅋㅋ

http://support.microsoft.com/kb/316495/en-us
여기에 버그로 등록이 되어 있네요... 오랜 세월이 흘렀는데도 고쳐지지 않는 것을 보면... 쉽사리 건드리기 힘든 녀석인가 봅니다. 이해가 안가지만요... ㅋㅋ

그래서 해법을 찾아보았습니다. ㅋㅋㅋ

http://www.codeguru.com/csharp/csharp/cs_controls/custom/article.php/c12371/

GroupRadioButton 을 만드신 분도 계시군요...
http://www.codeproject.com/Articles/7960/How-to-group-RadioButtons


행복한 고수되십시요...

반응형
Office Version 은 아래와 같습니다.
Original: 12.0.4518.1014 
SP1:      12.0.6213.1000 
SP2:      12.0.6423.1000

PS. 필요한 사람이 있으려나? ㅋㅋㅋ

행복한 고수되셔요...



woojja ))*
\\\\\\\\\\\\\\\\\\\\\\\\\\\
반응형

+ Recent posts