【问题标题】:programmatically add an image to an array to add to grid view in c# asp.net以编程方式将图像添加到数组以添加到 c# asp.net 中的网格视图
【发布时间】:2013-05-05 12:59:32
【问题描述】:

我有一个从 SQL 返回的数据数组,我想根据给定的结果向数组的每一行添加一个图像(刻度线或十字线)。我打算在数组周围做一个 foreach 和 if x==y 然后显示图像 a 否则显示图像 b 然后将其添加到数组中,然后在网格视图中显示数组

c_gvResults.DataSource = arResults

谁能指出我如何在 c# asp.net 中以编程方式从图像文件夹中获取图像并根据上述条件在 gridview 中显示的正确方向。

谢谢

【问题讨论】:

    标签: c# asp.net image gridview


    【解决方案1】:

    我认为您想在列中获取 <img> 元素,而不是实际的图像对象。特别是因为它们是刻度线或交叉线。只需将文件放在某个地方,制作相应的字符串,然后将这些字符串放入数组中。

    【讨论】:

      【解决方案2】:

      您真正需要做的不是将图像添加到数组中,而是将 URL 添加到数组中。然后,您可以使用ImageField 或使用该 URL 作为模板字段中网格视图中 IMG 标记的来源。 this post 提供了一些关于如何做到这一点的示例。如果您不知道如何使用 TemplateFields,check this out

      如果您不想在数据中添加 URL 字段,以获取条件格式,您的 IMG 标签可以如下所示。确切的语法可能不正确,但您明白了。 :)

      <asp:TemplateField HeaderText="EmpID">
          <ItemTemplate>
              <img src="<%# Eval("whatevercolumn") == "Correct" ? "tick.gif" : "cross.gif" %>"/>
          </ItemTemplate>
      </asp:TemplateField>
      

      【讨论】:

      • 嗨@Tombala 感谢您的帮助,这似乎正是我想要实现的目标。我遇到的问题是我不想从我从中获取其他数据的 sql 查询中获取 imageURLstring,但在之后添加它。我目前处于这个阶段,但不知道如何将 sTextString 添加到我的列表中,然后传递给 gridview。
      • 字符串 sTextString = ""; foreach (WebApplication.Data.Results.Result 结果在 lResults)) { if (result.UserAnswer == result.CorrectAnswer) { sTextString = "..images/tick.png"; } else { sTextString = "..images/cross.png"; } } c_gvResults.DataSource = lResults.ToArray(); c_gvResults.DataBind();
      • @user2192142 您要做的是使用 IMG 标记方法,并使用类似于 this post 的内联 if 语句检查您想要检查的任何列中的值。我用这个例子更新了代码。
      • 嗨@Tombala 我已经听取了你的建议,现在可以正常工作了。我无法使用 eval,因为它只返回 cross.gif 而不是 tick.gif。 --%>
      【解决方案3】:

      听起来您只是想在 Grid View 中显示图像而不是将其写回 DB 本身,因此您应该考虑处理 Grid View 的 RowDataBound 事件以及使用行模板添加自定义列以显示图片。

      在事件处理程序中测试您的表达式,然后根据结果在自定义列中显示适当的图像。

      【讨论】:

        【解决方案4】:

        如果在您的查询中获得 JPG 文件的文件名,您可能可以在 ASP 页面上的 GridView 的 &lt;Columns&gt; &lt;/Columns&gt; 标记下添加类似这样的内容。

        <asp:ImageField DataImageUrlField="YourJPGFileNameColumn" 
                       DataImageUrlFormatString="~\YourPathWhereTheImageIs\{0}.jpg" >
                       <ControlStyle Width="100px" />
        </asp:ImageField>
        

        “YourJPGFileNameColumn”必须是查询返回的列名,{0} 是查询返回的值所在的位置。

        例如,如果您的查询返回如下表:

        | ProductID |
         -----------
        | 1234      |
        | 010102    |
        | 5678      |
        

        你会这样写你的代码:

        <asp:ImageField DataImageUrlField="ProductID" 
                       DataImageUrlFormatString="~\YourPathWhereTheImageIs\{0}.jpg" >
                       <ControlStyle Width="100px" />
        </asp:ImageField>
        

        问候。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2016-04-22
          • 2013-11-03
          • 1970-01-01
          • 2017-10-09
          • 2017-06-28
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多