如何在字符串concat方法中从html标签调用C#方法?

时间:2015-03-10 00:05:41

标签: javascript c# html asp.net

我有一个RenderAppraisalImage()方法,它有一个foreach循环来通过我的图像和html.Append它为这些图像创建html标签。 我创建了一个删除方法,我需要在html.append中添加一个按钮标记,这样当用户点击按钮时它会删除图像。 我不知道如何从该按钮标签调用C#方法。 任何帮助,将不胜感激。

以下是代码:

public void DeleteAnImage(string ImageName)

{

    string filePath = @"\\serverName\MediaCom\bids\" + ImageName;
    FileIOPermission permission = new FileIOPermission(FileIOPermissionAccess.Write, filePath);
    PermissionSet permissionSet = new PermissionSet(PermissionState.None);
    permissionSet.AddPermission(permission);
    System.IO.File.Delete(filePath);

}
public string RenderAppraisalImages()
{
    System.Text.StringBuilder html = new System.Text.StringBuilder();

    string[] imageFilepaths = Advocar3.Business.Cars.ActivityBid.GetActivityBidImageFilepaths(ActaId, Aime.Global.MediaPathActivityBids, Aime.Global.MediaDirActivityBids);

    char nextImageAvailable = 'a';

    foreach(string imageFilepath in imageFilepaths)
    {
        int pos = imageFilepath.LastIndexOf("/") + 1;


        html.Append(string.Concat(@"<div class=""InlineElement EnterAppraisalImageContainer"">
                                <button onclick="here I need the C# method">Delete Image</button>    
                                    <img src=""", imageFilepath, @""" class=""EnterAppraisalImage"" onclick=""CommandViewFullsizeImage($(this).attr('src'));"" />", @"</div>"));

        nextImageAvailable++;

    }


    return html.ToString();

}

这是UI输出: enter image description here

1 个答案:

答案 0 :(得分:0)

您应该使用Repeater Control

   <asp:Repeater ID="Repeater1" runat="server"  >
                                             <HeaderTemplate>
                                                 <tr class="">
                                                 <asp:Repeater ID="Header1" runat="server">
                                                     <ItemTemplate> 
                                                         <th align="left"> <%# Container.DataItem %></th>
                                                     </ItemTemplate>
                                                 </asp:Repeater>  
                                                     </tr>                                            
                                             </HeaderTemplate>
                                                <ItemTemplate>
                                                    <tr class="">
                                                    <asp:Repeater ID="Item1" runat="server">
         <ItemTemplate> 
                                                          <td> <asp:Image runat="server"
                ImageUrl="<%# DataBinder.Eval(Container.DataItem, "TheFieldName") %>" />
    </td>
                                                     </ItemTemplate>



        <ItemTemplate> 
                                                              <td> 
              <%# YouCodeBehinFunctionNAme(Eval("Image_ID").ToString()) %>   

        </td>
                                                         </ItemTemplate>

                                                        </asp:Repeater>
                                                        </tr>
                                            </ItemTemplate>
                                     </asp:Repeater>

代码背后

public PAGELOAD
{
Repeater1.Datasource=dt;
Repeater1.databind();
}

public YouCodeBehinFunctionNAme(string ID)
{
delete immage where id = ID
}