2

今日はたくさん質問があったようです。

私がやりたいのは、各画像のテキストを保存することです。現在、各画像に適切なテキストをテキストボックスに入れています。

背後にあるコード:

var car = GarageBLL.LoadCar(Convert.ToInt32(CarId),
Convert.ToInt32(_memberId)); ImageRepeater.DataSource = car.Images;
ImageRepeater.DataBind();

protected void FinalizeNewCar(object sender, EventArgs e) {
Response.Redirect("/amcargarasjen"); }
**Code here for saving each edit into the right ImageId.**

ASP:

<asp:Repeater runat="server" ID="ImageRepeater">
   <ItemTemplate>
       <table>
           <tr>
               <td>
                   <a class="deleteLink" href="#" rel="<%#Eval("ImageId")%>" title="">
                   <asp:Image runat="server" ImageUrl="/Content/Images/Garage/DeleteButton.png" /></a>
                   <asp:Image Width="60" Height="45" ID="ImgCar" ImageUrl='<%# String.Format("/garageimages/{0}/{1}.{2}", CarId, Eval("ImageId"), Eval("Extension")) %>' runat="server" />
                   <asp:TextBox runat="server" Text='<%# Eval("Description") %>' ID="txtText"></asp:TextBox>
               </td>
           </tr>
       </table>
   </ItemTemplate>
</asp:Repeater>
<br />
<asp:Button ID="Button1" runat="server" Text="Fullfør" OnClick="FinalizeNewCar" />

誰かがそれを行う方法について何かアイデアを持っていますか?

4

1 に答える 1

2

以下のように Repeater HTML マークアップを変更します。現在のイメージ ID の参照を保持するために Hidden フィールドが追加されていることに注意してください。

<asp:Repeater runat="server" ID="ImageRepeater">
   <ItemTemplate>
       <table>
           <tr>
               <td>
                   <a class="deleteLink" href="#" rel="<%#Eval("ImageId")%>" title="">
                   <asp:Image runat="server" ImageUrl="/Content/Images/Garage/DeleteButton.png" /></a>
                   <asp:Image Width="60" Height="45" ID="ImgCar" ImageUrl='<%# String.Format("/garageimages/{0}/{1}.{2}", CarId, Eval("ImageId"), Eval("Extension")) %>' runat="server" />
                   <asp:TextBox runat="server" Text='<%# Eval("Description") %>' ID="txtText"></asp:TextBox>
                   <asp:HiddenField runat="server" Value='<%# Eval("ImageId") %>' ID="txtImageId"></asp:TextBox> 
               </td>
           </tr>
       </table>
   </ItemTemplate>
</asp:Repeater>
<br />
<asp:Button ID="Button1" runat="server" Text="Fullfør" OnClick="FinalizeNewCar" />

コード FinalizeNewCar イベント ハンドラ

protected void FinalizeNewCar(object sender, EventArgs e)
{
    foreach (RepeaterItem item in ImageRepeater.Items)
    {
        Int32 imageId = Convert.ToInt32(((HiddenField) item.FindControl("txtImageId")).Value);
        string description = ((TextBox)item.FindControl("txtText")).Text;
        //You will get the imageId description here. 
        //Write your code to update the datatbase.
    }
}
于 2012-11-05T19:55:06.280 に答える