2013-04-02 3 views
0

프로그래밍 초보자입니다. UserControl을 Gridview 템플릿에 동적으로 추가하는 프로그램을 만들고 있는데 DataCont의 값을 UserControl의 속성에 전달하려고합니다. Gridview의 TemplateField에는 이미 1 개의 사용자 정의 컨트롤이 미리로드되어 있으며, 버튼을 클릭하면 번호가 매겨진 새로운 UserControl이 추가됩니다.Datatable에서 UserControl 속성으로 값 전달

다음은 FormLoad 이벤트 페이지의 코드입니다.

 Dim dtSESRatings As New DataTable 

     dtSESRatings.Columns.Add("IncrementNumber") 
     dtSESRatings.Rows.Add("1") 
     ViewState("dtSESRatings") = dtSESRatings 

     gvSesRating.DataSource = dtSESRatings 
     gvSesRating.DataBind() 

는 그리고 나는 IncrementNumber 속성이 SESRatings.ascx에 설정된 사용자 컨트롤의 번호 라벨에 행을 추가 할. 그것이있는 gridview에서 새 사용자 컨트롤을 만들 예정이다,

<asp:GridView ID="gvSesRating" runat="server" Width="100%" ShowHeader="false" GridLines="None" 
             AutoGenerateColumns="False"> 
             <Columns> 
              <asp:TemplateField> 
               <ItemTemplate> 
                <ses:SESRatings runat="server" ID="ses1" IncrementNumber="1" /> 
               </ItemTemplate> 
              </asp:TemplateField> 
             </Columns> 
            </asp:GridView> 

이 FormLoad 후, 버튼을 클릭에 "NEW 평가 추가"및 코드는 여기에 있습니다 : : 이 ASP 코드입니다

Protected Sub btnAddRating_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnAddRating.Click 
    Dim dt As DataTable = ViewState("dtSESRatings") 
    Dim dtCnt As Integer = dt.Rows.Count 
    dtCnt += 1 
    dt.Rows.Add(dtCnt) 
    ViewState("dtSESRatings") = dt 

    gvSesRating.DataSource = dt 
    gvSesRating.DataBind() 

    dt = Nothing 
End Sub 

GridView에 추가 될 사용자 정의 컨트롤이 dtCnt를 가져와 사용자 정의 컨트롤의 IncrementNumber 속성에 전달하려고합니다. 어떻게해야합니까? 도와주세요. 감사.

답변

0

당신은 당신의 GridView 컨트롤에 평가 태그를 사용해야합니다

<ses:SESRatings runat="server" ID="ses1" IncrementNumber='<%# Eval("IncrementNumber") %>' /> 
+0

내가 이미 평가 태그를 추가하지만 불행히도, 제 2 사용자 정의 컨트롤을 추가 한 후, 번호 매기기는 모든 사용자 컨트롤이 이제 번호가 0으로 1.되었다 0. –

관련 문제