2011-11-03 4 views
0

나는 리피터를하고 난 지금 내가 중계기의 항목을 클릭 할 때 쿼리 문자열 .. 값이 같은 데이터베이스에서 제공과 함께 다른 페이지로 리디렉션됩니다 원하는 How to add an attribute to repeater item at runtime?리피터 항목을 클릭하면서 다른 페이지로 리디렉션하는 방법은 무엇입니까?

에서 코드를 사용 할 수 클릭 만들었다 (사용자 ID). 실제로 사용자 정보와 함께 사용자 세부 정보 페이지로 리디렉션하려는 항목을 클릭 할 때 수행하려는 작업.

row.Attributes["onclick"] = string.Format("window.location = '{0}';", ResolveClientUrl(string.Format("~/Default.aspx?userId={0}", e.Item.DataItem))); 

을 대신 콘크리트 클래스에있는 DataItem 캐스트와 같은 클래스 속성을 사용할 수 있습니다 e.Item.DataItem를 사용하여 : : 일반적으로

MyClass mc = e.Item.DataItem as MyClass; 
row.Attributes["onclick"] = string.Format("window.location = '{0}';", ResolveClientUrl(string.Format("~/Default.aspx?userId={0}", mc.UserId))); 

를)

답변

3

당신은 itemRow에 다른 속성을 추가 할 수 있습니다 당신은 서버 쪽 코드없이 repeater의 ItemTemplate에서 행에 속성을 추가 할 수 있습니다. 당신이 속성에 데이터 소스에서 해당 필드를 바인딩 그냥 필요가 모든 :

<ItemTemplate> 
    <tr onmouseover="window.document.title = '<%# Eval("userId", "Click to navigate onto user {0} details page.") %>'" 
     onclick='window.location = "<%# ResolveClientUrl("~/Default.aspx?userId=" + Eval("userid")) %>"'> 
      <td> 
       <%# Eval("UserId") %> 
      </td> 
    </tr> 
</ItemTemplate> 
+0

을이 응용 프로그램의 때문에, 나는 유에게 내가 가지고 대단히 선생님 감사합니다 당신은 사용자 ID –

+0

를 얻을 수 있습니다에서 위치에 대한되지 않은 생각을 가지고 내가 감사해야 할게 많이. 다시 한번 –

관련 문제