根据asp.net中的列值在网格视图中动态显示图像

本文关键字:视图 网格 动态显示 图像 asp net 根据 | 更新日期: 2023-09-27 18:07:51

我正在将表数据绑定到网格视图中,我想在表中添加列状态,列中的值将是发送的消息或保存的消息。我想显示基于值的图像是消息发送或保存。我如何动态地做到这一点。

        DataTable dt = new DataTable();
        try
        {
            string MysqlStatement = "SELECT MsgID, MsgText, RespondBy, ExpiresBy, OwnerName FROM tbl_message WHERE tbl_user_tbl_organisation_OrganisationID = @Value1";
            MySqlCommand sqlCmd = new MySqlCommand(MysqlStatement, connectionString);
            sqlCmd.Parameters.AddWithValue("@Value1", newOrgID);
            MySqlDataAdapter sqlDa = new MySqlDataAdapter(sqlCmd);
            sqlDa.Fill(dt);
            if (dt.Rows.Count > 0)
            {
                Grid_Messagetable.DataSource = dt;
                Grid_Messagetable.DataBind();
                Grid_Messagetable.Columns[2].Visible = false;
            }
            else
            {
            }

<asp:GridView ID="Grid_Messagetable" runat="server" AllowPaging="True" SelectedIndex="0"
                DataKeyNames="MsgID" ShowHeaderWhenEmpty="True" OnRowDeleting="MsgTable_RowDeleting"
                OnRowEditing="MsgTable_RowEditing" AutoGenerateColumns="False" BorderStyle="Double"
                Width="537px">
                <Columns>
                    <asp:CommandField ShowDeleteButton="True" ShowEditButton="True" HeaderText="Edit controls"
                        ButtonType="Image" DeleteImageUrl="~/Styles/Images/Delete.gif" EditImageUrl="~/Styles/Images/Edit.gif" />
                    <asp:TemplateField HeaderText="DashBoard">
                        <ItemTemplate>
                        <asp:ImageButton ID="imgbtn_ViewDashBoard" ImageUrl="Styles/Images/dash.png" Enabled="True"
                                    Width="50" runat="server" PostBackUrl='<%# Eval("MsgID", "ResponseMetric.aspx?MsgID={0}") %>'
                                    Text='Send'></asp:ImageButton>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:BoundField DataField="MsgID" HeaderText="MsgID" ReadOnly="True" SortExpression="MsgID" />
                    <asp:BoundField DataField="MsgText" HeaderText="MsgText" ReadOnly="True" SortExpression="MsgText" />
                    <asp:BoundField DataField="RespondBy" HeaderText="RespondBy" ReadOnly="True" SortExpression="RespondBy" />
                    <asp:BoundField DataField="ExpiresBy" HeaderText="ExpiresBy" ReadOnly="True" SortExpression="ExpiresBy" />
                    <asp:BoundField DataField="OwnerName" HeaderText="OwnerName" ReadOnly="True" SortExpression="OwnerName" />
                    <asp:ImageField DataImageUrlField="Sent" HeaderText="Status" 
                        NullImageUrl="~/Styles/Images/White.gif">
                    </asp:ImageField>
                </Columns>
            </asp:GridView>

根据asp.net中的列值在网格视图中动态显示图像

您可以像这样创建模板列字段:

<asp:TemplateField HeaderText="Status">
     <ItemTemplate>
          <asp:ImageButton ID="img" runat="server" ImageUrl='<%# (Eval("Status") == "Sent") ? "messagesent.png" : "messagesaved.png" %>' />
     </ItemTemplate>
</asp:TemplateField>