2013-07-24 4 views
0

asp.net 개발 초보자입니다. 하나의 링크 버튼이 두 개 이상의 명령을 가질 수 있는지 묻고 싶습니다.하나의 링크 버튼 컨트롤에서 다중 명령

내 링크 버튼이 편집 및 업데이트 명령을 처리 할 수 ​​있어야합니다. 일단 내가 그리드보기에서 링크를 클릭하면 해당 컨트롤에 데이터가 표시됩니다 (예 : 이름의 텍스트 상자는 내가 클릭 한 데이터를 갖게됩니다). 그런 다음 텍스트 상자의 데이터를 편집하고 업데이트 할 링크를 클릭하십시오 데이터베이스에 저장하십시오.

<asp:TemplateField HeaderText="ID"> 
        <ItemTemplate> 
         <asp:LinkButton ID="lnkEdit" runat="server" CommandArgument='<%#Eval("ID")%>' CommandName="Update" 
          HeaderText="ID" SortExpression="ID" Text='<%#Eval("ID")%>'> 
         </asp:LinkButton> 
        </ItemTemplate> 
       </asp:TemplateField> 

미리 감사드립니다. 도와주세요!. :)

답변

1

하나의 링크 버튼에 대해 여러 개의 commandname을 가질 수 없지만 편집을 위해 linkbutton을 클릭하면 commandname을 "Update"로 변경할 수 있습니다. 문제가 해결 될 것이라고 생각합니다. 링크 버튼의 commandname을 변경하려면 this 링크를 참조하십시오.

1

두 개의 명령을 만들 필요는 없습니다.

먼저 편집 할 명령 이름을 설정하십시오. 따라서 그것을 클릭하십시오. 컨트롤에 데이터가 표시됩니다. 클릭 이벤트에서 업데이트 할 명령 이름을 설정하십시오. 그리고 다시 업데이트 후 명령 이름을 편집으로 설정하십시오.

Write click event code like this. 

if(CommandName=="Edit") 
{ 
    //Fill Value in controls 
    // Set CommandName to Update 
} 
else if(CommandName=="Update") 
{ 
    // Update value in database 
    // Set command name to Edit 
} 

또는 한 번에 하나씩 볼 수있는 두 개의 링크 버튼을 사용할 수 있습니다.

희망 도움말.

+0

안녕하세요, 사과드립니다.하지만 방금 지난 2 주 전에 asp.net을 배우기 시작했습니다. 위의 코드와 관련하여 질문을드립니다. 내 aspx 코드는 어떻게 생겼을까요? 그건 그렇고 3 계층 아키텍처를 사용하고 있습니다. 덕분에 – JennyJane

1

안녕 제니는 다음과 같은 코드를 사용 : -

<asp:TemplateField HeaderText="ID"> 
       <ItemTemplate> 
        <asp:LinkButton ID="lnkEdit" runat="server" CommandArgument='<%#Eval("ID")%>' CommandName="Update" Onclick="lnkEdit_Click" 
         HeaderText="ID" SortExpression="ID" Text='<%#Eval("ID")%>'> 
        </asp:LinkButton> 
       </ItemTemplate> 
      </asp:TemplateField> 

을 aspx.cs 페이지 쓰기 코드에서 아래와 같이 : -이 도움말

protected void lnkEdit_Click(object sender, EventArgs e) 
{ 
    LinkButton btn = (LinkButton)sender; 
    int Id = Convert.ToInt32(btn.CommandArgument.ToString()); 

    if(btn.CommandName=="Edit") 
    { 
     // Write here code for edit 
      btn.CommandName="Update"; 
    } 
    else if(btn.CommandName=="Update") 
    { 
     // Write here code for Update 
      btn.CommandName="Edit"; 
    } 
} 

희망.

+0

도움을 많이 줘서 고마워. – JennyJane