【问题标题】:Dynamically display images in a grid view based on the column values in asp.net根据asp.net中的列值在网格视图中动态显示图像
【发布时间】:2011-09-05 08:48:47
【问题描述】:

我正在将表格数据绑定到网格视图,我想在表格中添加一个列状态,并且该列中的值将发送消息或保存消息。我想根据消息发送或保存的值显示图像。我怎样才能动态地做到这一点。

        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>

【问题讨论】:

    标签: c# asp.net data-binding gridview


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多