2011-08-03 9 views
1

基本的な質問は次のとおりです。リピータからのデータの取得

リピータからImageIDを取得すると、ボタンクリック時にクエリ文字列を渡すことができますか?

例えば:

var List = new List<Images>(); 
       foreach (DataRow dr in picture.Rows) 
       { 
        DateTime DateTemp =   DateTime.Parse(dr["date"].ToString()); 
        var childPhoto = new Images() 
           { 
            DateTaken = DateTemp.ToString("MM/dd/yyyy"), 
            PlaceTaken = dr["place"].ToString(), 
            DetailedInfo = dr["info"].ToString(), 
            ImageID = dr["ImageId"].ToString() 
           }; 
        childList.Add(childPhoto); 
       } 

       ShowPhotoRepeater.DataSource = List; 
       ShowPhotoRepeater.DataBind(); 
      } 
     } 
    } 

    protected void btnEditChildPhoto_Click(object sender, EventArgs e) 
    { 

     Response.Redirect("EditPhoto.aspx?ImageID=" +)); 
    } 
:私は、画像の詳細を編集する必要があり、各画像は、以下に示すように、編集ボタン

:(リピータによって生成される)

enter image description here

C#コードを有します

私のaspxコード:

<asp:Repeater ID="ShowProfileRepeater" runat="server"> 
    <ItemTemplate> 
    <table> 
     <tr> 
      <td width = "15%" rowspan="6"><%--<asp:Image ID="ImgPhoto" runat=server />--%> 
      <%--<asp:Image ID="childImage" ImageUrl="<%#Eval("ImgUrl")%>" runat="server" />--%> 
      <asp:Image ID="childImage" ImageUrl="~/img/missing children pictures/shearwey.jpg" CssClass="content_image" runat="server" /> 
      </td><br /> 
      <td width = "15%">Name:</td> 
      <td width = "70%"> 
       <asp:Label ID="lblChildName" runat="server" Text='<%#Eval("Name")%>'></asp:Label></td> 
      <td > 
       <asp:Button ID="btnEditChildProfile" runat="server" Text="Edit" /> 
      </td> 

     </tr> 
     <tr> 
      <td width = "15%">Gender:</td> 
      <td width = "55%"> 
       <asp:Label ID="lblChildGender" runat="server" Text='<%#Eval("Gender")%>'></asp:Label></td> 
      <td></td> 
     </tr> 
     <tr> 
      <td width = "10%">Date Of Birth:</td> 
      <td width = "55%"> 
       <asp:Label ID="lblChildDOB" runat="server" Text='<%#Eval("DOB")%>'></asp:Label></td>         
      <td></td> 
     </tr> 
     <tr> 
      <td width = "10%">Country:</td> 
      <td width = "55%"> 
       <asp:Label ID="lblChildCountry" runat="server" Text='<%#Eval("Country")%>'></asp:Label></td>         
      <td></td> 
     </tr> 
     <tr> 
      <td width = "10%">Missing Date:</td> 
      <td width = "55%"> 
       <asp:Label ID="lblChildMissingDt" runat="server" Text='<%#Eval("MissingDt")%>'></asp:Label></td>         
      <td></td> 
     </tr> 
     <tr> 
      <td width = "10%">Last Seen Location:</td> 
      <td width = "55%"> 
       <asp:Label ID="lblChildLaseSeenLoc" runat="server" Text='<%#Eval("LastSeenLoc")%>'></asp:Label></td>         
      <td></td> 
     </tr> 

    </table> 
    </ItemTemplate> 
    </asp:Repeater> 

答えて

1
<asp:Button ID="btnEditChildProfile" runat="server" Text="Edit" CommandArgument='<%# Eval("ImageId")%>' /> 



protected void btnEditChildPhoto_Click(object sender, EventArgs e) 
{ 
    var btn = (Button)sender; 
    Response.Redirect("EditPhoto.aspx?ImageID=" + btn.CommandArgument)); 
} 

それとも

<a href='EditPhoto.aspx?ImageID=<%# Eval("ImageId") %>' >Edit</a> 
+0

ありがとうございました!それは今働く。 –

1

代わりにボタンしたいリンクにリダイレクトするようにリピータ内のリンクボタンを使用しての使用。そうすれば、ボタン用の別個のイベントハンドラは必要ありません。

<asp:LinkButton PostBackUrl="EditPhoto.aspx?ImageID=<%#Eval("ImageId")%>"></asp:LinkButton> 
関連する問題