Отображение изображения по умолчанию в виде сетки - PullRequest
1 голос
/ 23 августа 2011

Как отобразить изображение профиля по умолчанию в сетке, если пользователь не предоставил изображение.

if (fileUpload.PostedFile == null) 
{ 
    lblStatus.Text = "No file specified."; 
    return; 
} 
else
{        
{

Ответы [ 2 ]

2 голосов
/ 23 августа 2011

Одним из подходов может быть проверка каждой строки во время события RowDataBound, чтобы увидеть, существует изображение или нет. Если он пуст, вы можете назначить URL-адрес изображения по умолчанию.

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{        
    if(e.Row.RowType == DataControlRowType.DataRow)
    {
        Image image= (Image)e.Row.FindControl("ImageForPerson");

        if (image != null && image.ImageIrl == "")
        {
            image.ImageUrl = // default image url goes here
        }
    }
}

Не забудьте добавить событие RowDataBound в определение GridView.

<asp:GridView ID="GridView1" OnRowDataBound="GridView1_RowDataBound" />

Или, если вы не хотите использовать событие RowDataBound. В Page_Load вы можете вручную пройти каждую строку GridView и проверить ImageUrl один за другим.

protected void Page_Load(object sender, EventArgs e)
{
     foreach(GridViewRow gvr in GridView1.Rows)
     {
         Image image = (Image)gvr.FindControl("ImageForPerson");

         if (image != null && image.ImageIrl == "")
         {
             image.ImageUrl = // default image url goes here
         }
     }
}
0 голосов
/ 15 февраля 2017

Это также может быть сделано в одной строке в самом aspx. С помощью троичного оператора.

<asp:Image ID="Image1" runat="server" ImageUrl='<%# !string.IsNullOrEmpty(Eval("userImage").ToString()) ? "/images/" + Eval("userImage") : "/images/noimage.jpg" %>' />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...