2011-12-20 4 views
0

ASP.NET 응용 프로그램이 있습니다. 이 응용 프로그램에는 GridView가 있습니다. 이 GridView에는 하이퍼 링크를 포함해야하는 TemplateField가 있습니다. 하이퍼 링크를 하이퍼 링크로 이동 시키려면,ASP.NET의 GridView ItemTemplate에서 QueryStringParameter 및 ControlParameter 사용

add.aspx?id1=[QueryStringParameterValue]&id2=[ControlParameterValue]&id3=[CurrentRecordID] 

이 방법이 있습니까? 그렇지 않은 경우, 다른 페이지로 사용자를 리디렉션 및 고려하는 가장 좋은 방법은 무엇입니까 :

  • 현재의 쿼리 문자열의 값합니다 (QueryStringParameterValue) 드롭 다운에서 선택한 항목의
  • 값 목록합니다 (ControlParameterValue)
  • 현재 레코드 ID는

현재 내의 GridView는 다음과 같습니다

<asp:DropDownList ID="myDropDownList" Runat="Server" DataSourceID="myDataSource" DataTextField="Name" DataValueField="ID" /> 
<GridView ID="myGridView" runat="Server"> 
    <Columns> 
    <asp:BoundField DataField="ID" HeaderText="ID" /> 
    <asp:BoundField DataField="Name" HeaderText="Name" /> 
    <asp:TemplateField HeaderText="Action"> 
     <ItemTemplate> 
     <a href="#">View Details</a> 
     </ItemTemplate> 
    </asp:TemplateField> 
    </Columns> 
</asp:GridView> 

하지만 지금은 붙어 있습니다. 내 ItemTemplate 내에 포함시키려는 세 항목을 어떻게 연결합니까?

감사합니다.

답변

0

ASPX

<a href='<%# CreateUrl(Eval("id")) %>'>View details </a> 

C#을 마크 업

protected string Value1{get {return Request.QueryString["key"];}} 
protected string Value2 {get {return DropDown.SelectedValue;}} 

뒤에

public string CreateUrl(obj value) 
{ 
     var p = request.querystring["querystringname"]; 
     if(p!=null) 
     { 
     return "add.aspx?id1=" + p + "&id2=" + mydropdownlist.selectedvalue + "&id3=" + id; 
     } 
     return ""; 
} 
0

요청 데이터와 응답 데이터를 구분할 것입니다. 이런 식으로 무언가가 변경되면 (드롭 다운 목록이나 쿼리 링을 양식 게시로 대체하는 등) Gridview가 변경되지 않습니다.

코드

<GridView ID="myGridView" runat="Server"> 
    <Columns> 
    ... 
    <asp:TemplateField HeaderText="Action"> 
     <ItemTemplate> 
     <a href='<%=string.Format("add.aspx?id1={0}&id2={1}&id3={2}", Value1, Value2, Eval("ID"))%>'>View Details</a> 
     </ItemTemplate> 
    </asp:TemplateField> 
    </Columns> 
</asp:GridView>