2013-05-29 1 views
0

내 gridview의 단추를 사용하여 선택한 행의 GUID 인 ID를 데이터베이스의 GUID와 비교 한 다음 "Show"함수에 전달합니다. 데이터베이스에서 게시물을 가져옵니다.gridwiew_row 명령의 반환 값을 사용하여 데이터베이스를 검색하려면 어떻게해야합니까?

바로 지금 내 버튼에서 "표시"로 개체 "visadabok"을 가져 오는 방법을 알지 못합니다. GridView1_RowCommand위한

protected void Page_Load(object sender, EventArgs e) 
     { 
      if (Page.IsPostBack) 
      { 

      } 
      else 
      { 
       //TextBox68.Text = Request["ID"]; 

       if (!string.IsNullOrEmpty(TextBox68.Text)) 
       { 
        Show(GridView1_RowCommand()); 
       } 
      } 
     } 
     protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e) 
     { 
      if (e.CommandName == "Valj") 
      { 
       var valj = new Guid((string)e.CommandArgument); 

       var visadagbok = (from x in DagbokFactoryBase.All 
            where (x.ID == valj) 
            select x).FirstOrDefault(); 
       return visadagbok; 

      } 

     } 
<asp:TemplateField> 
    <ItemTemplate> 
    <asp:Button ID="AddButton" runat="server" 
    CommandName="Valj" 
    CommandArgument="<%# ((GridViewRow) Container).ID %>" 
    Text="Gå till" /> 
    </ItemTemplate> 
</asp:TemplateField> 
+0

'GridView1_RowCommand'는'void'입니다 - 따라서 실제로 아무것도 반환하지 않습니다. 그것을 "어디로"돌려 보내려고하십니까? – Darren

답변

1

반환형 무효이며, 따라서 본 방법은 Show 방법으로 데이터를 반환 할 수 없습니다. 당신이

  1. 로 문의 GridView1_RowCommand 방법에서 Show 방법

예를 들어, (.NET 프레임 워크와 같은 최고의 옵션은 그리드에 대한 호출 이벤트를 수행)을 수행하는 것을 선호 할 2 개 가지 옵션이 있습니다

protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e) 
{ 
    if (e.CommandName == "Valj") 
    { 
     var valj = new Guid((string)e.CommandArgument); 
     var visadagbok = (from x in DagbokFactoryBase.All 
            where (x.ID == valj) 
            select x).FirstOrDefault(); 
     Show(visadagbok); 

    } 
} 
  1. 이 당신이 속성 값이 설정되어있는 경우 대리자를 호출하는 속성을 만들 필요가 들어 잃게 커플 링에 대한 이벤트 기반 프로그래밍을 작성합니다. "GridView1_RowCommand"에서 속성에 값을 할당하십시오. 이 대리자는 "표시"메서드를 호출합니다.

처럼 :

public delegate void ShowHandler(string id); 

public string Id 
{ 
    set 
    { 
     ShowHandler _show = new ShowHandler(Show); 
     if (_show != null) 
     { 
      _show(value); 
     } 
    } 
} 

protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e) 
{ 
    //set of existing code 
    Id = visadagbok 
} 

public void Show(string Id) 
{ 
    //set of code 
} 
+0

내용을 읽기 쉽도록 편집 해 주셔서 감사합니다 User35443. StackOverFlow를 처음 사용합니다. –

관련 문제