2013-11-21 4 views
4

나는 데이터리스트를 포함하고있는 나의 프로젝트에서 ajaxtabcontainer 컨트롤을 가지고 있으며 datalist에서 링크 버튼으로 이름을 설정했다. 내가 소스에 바인딩하고있는 데이터리스트에는 이름과 나이가 들어 있습니다. 이제 내가 선택한 값으로 드롭 다운 목록에서 선택한 값을 사용하는 나이를 사용하고 싶습니까? 내가 원하는 건 라벨 안에있는 가치를 얻는 이름 링크 버튼을 클릭하는 것일까 요? 그것을하는 방법?데이터리스트에서 링크 버튼 텍스트와 값을 얻는 방법?

protected void btn_Click(object sender, EventArgs e) 
    { 

     LinkButton myButton = sender as LinkButton; 
     if (myButton != null) 
     { 
      Label1.Text = myButton.Text; 
     } 

    } 
    protected void datalist1_ItemCommand(object source, DataListCommandEventArgs e) 
    { 
     int i; 
     int index = Convert.ToInt32(e.Item.ItemIndex); 
     LinkButton lnkid = (LinkButton)e.Item.FindControl("lnkpro"); 
     Label1.Text = lnkid.Text; 
     i = Convert.ToInt32(lnkid.Text); 
    } 

하지만 그들은 작동하지 않습니다 : CS 코드에서

<ajaxToolkit:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server"> 
    </ajaxToolkit:ToolkitScriptManager> 
    <ajaxToolkit:TabContainer ID="TabContainer1" runat="server" ActiveTabIndex="1"> 
     <ajaxToolkit:TabPanel runat="server" HeaderText="TabPanel1" ID="TabPanel1"> 
      <HeaderTemplate> 
       Names 
      </HeaderTemplate> 
     <ContentTemplate> 
     <asp:DataList ID="DataList1" runat="server" RepeatDirection="Horizontal" RepeatColumns="5" ForeColor="Red" 
      RepeatLayout="Table" > 

       <ItemTemplate> 
       <asp:LinkButton Text = '<%#Eval("names")%>' ID="lnkpro" runat="server" ForeColor="Red" OnClick="btn_Click"></asp:LinkButton> 
       </ItemTemplate> 
      </asp:DataList> 

     </ContentTemplate> 

    </ajaxToolkit:TabContainer> 

: 기본 영문에서 : 내가 무슨 짓을하는 것은 다음과 같다. btn_click은 작동하지만 id에만 이름을 부여합니다. 두 번째 datalist_itemcommand가 작동하지 않습니까? 고맙습니다.

답변

0

aspx 페이지에 OnItemCommand = "datalist1_ItemCommand"가 없습니다. OnItemCommand 속성을 설정 한 후에 datalist1_ItemCommand가 실행됩니다. 당신이 datalist1_itemCommand 기능에 나이 필드 값을 얻으려고 노력하는 경우

<asp:DataList ID="DataList1" runat="server" RepeatDirection="Horizontal" RepeatColumns="5" ForeColor="Red" OnItemCommand="datalist1_ItemCommand" 
      RepeatLayout="Table" DataKeyField="age" > 
       <ItemTemplate>     
       <asp:LinkButton Text = '<%#Eval("names")%>' ID="lnkpro" runat="server" ForeColor="Red" OnClick="btn_Click"></asp:LinkButton> 
       </ItemTemplate> 
      </asp:DataList> 

, 당신은 DataKeyFeild = "나이"를 설정해야합니다. 그리고 item 명령 함수에서 Convert.ToInt32 (DataList1.DataKeys [e.Item.ItemIndex])를 사용하여 값을 얻을 수 있습니다. 아이템 명령 기능은

protected void datalist1_ItemCommand(object source, DataListCommandEventArgs e) 
    { 
     int age = Convert.ToInt32(DataList1.DataKeys[e.Item.ItemIndex]); 
    } 
입니다.
관련 문제