0

グリッド ビューにイメージ ボタン コントロールがあります。顧客は別のページにフォルダのパスを入力する必要があります。このパスをデータベースに保存しました。これが必要なのは、外付けハードの顧客ストアのイメージがハード ディスクから Web サイトのイメージにイメージを転送できないためです。巨大なサイズ

私の画像テーブルには、ユーザーがグリッドビューを表示するときに画像名が含まれています。データベースからの画像名とデータベースからのパスを連結します。どうすればそれを行うことができますか

            <asp:TemplateField HeaderText="photo">
           <ItemTemplate >


               <asp:ImageButton ID="ImageButton1" runat="server" ImageUrl='<%# GetImagePath()+Eval("ImageName")  %>'  Width="100px" Height="100px" Style="cursor: pointer" OnClientClick = "return LoadDiv(this.src);" /> 
           </ItemTemplate>
           </asp:TemplateField>
4

2 に答える 2

2

このような関数で書き留める必要があります

public string GetImage(string name)
{
  string path = Path.Combine(Server.MapPath(("~/Admin/Images/" , name)); 
  return path;
}

また

このようにすることもできます

void GrdVw_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if(e.Row.RowType == DataControlRowType.DataRow)
    {
        Image rowImage = (Image) e.Row.FindControl("currentDocFile");
        rowImage.ImageUrl = whatever;
    }
}
于 2013-01-12T19:02:28.757 に答える
0

イメージ名をパラメーターとして GetImagePath に渡すことをお勧めします これを試してください:

public string GetImagePath(string imageName)
{
   return VirtualPathUtility.ToAbsolute("~/images/" + imageName);
}

VirtualPathUtility.ToAbsolute(string) は、仮想パスをアプリケーションの絶対パスに変換します。したがって、「/images/yourimage.jpg」のようなものが得られます。

于 2013-01-12T19:44:54.433 に答える