отображение галочки в виде сетки - PullRequest
0 голосов
/ 11 октября 2011

У меня есть сетка и источник данных. В источнике данных есть один столбец, который я хочу интерпретировать и отображать галочку, если это определенное значение (текст). Мой вопрос похож на этот . Это выполнимо? Примечание. Если я добавлю поле изображения в gridview, оно попытается привязать URL-адрес изображения в базе данных, что не так. Я не хочу менять базу данных, просто отобразите галочку в виде сетки.

<- Edit: добавлено изображение, чтобы отличить его от флажка. </p>

Ответы [ 4 ]

1 голос
/ 11 октября 2011

вставка столбца шаблона в столбцы просмотра таблицы:

<asp:TemplateField>
    <ItemTemplate>
       <asp:CheckBox ID="chkSelect" runat="server" />
    </ItemTemplate>
 </asp:TemplateField>

Редактировать: для галочки

<asp:TemplateField>
    <ItemTemplate>
       <asp:Image ImageUrl='<%# GetCheckMark(Eval("Checked")) %>' ID="imgCheckMark" runat="server" />
    </ItemTemplate>
 </asp:TemplateField>

в коде позади

protected string GetCheckMark(bool checked){
  return checked?"~/images/checkmark.gif":"~/images/uncheckmark.gif";
}

и вот оно:)

1 голос
/ 11 октября 2011

Надеюсь, это поможет вам, как поставить флажок внутри вида сетки

%@ Page Language="C#" AutoEventWireup="true" CodeFile="CheckBoxExample.aspx.cs" Inherits="CheckBoxExample" %>

<title>CheckBox Example</title>

<form id="form1" runat="server">

<div>

    <asp:GridView ID="ProductGridView" runat="server" AutoGenerateColumns="False" DataKeyNames="ItemId">
        <Columns>

            <asp:BoundField DataField="ItemDescription" DataFormatString="{0}" HeaderText="Item" />

            <asp:BoundField DataField="ItemPrice" DataFormatString="{0:C}" HeaderText="Price" />

            <asp:TemplateField HeaderText="Purchase">

               <ItemTemplate>

                    <asp:CheckBox ID="CheckBoxPurchase" runat="server" Enabled="true" />
               </ItemTemplate>

            </asp:TemplateField>

        </Columns>

    </asp:GridView>

    <asp:Button ID="Purchase" runat="server" Text="Purchase Checked Items" />

</div>

</form>

0 голосов
/ 11 октября 2011

Решение (отвечаю сам).Это мое поле шаблона (показывает только соответствующий код)

<asp:TemplateField HeaderText="Image" >
<HeaderTemplate> </HeaderTemplate> 
<ItemTemplate>        // all other templates removed
<asp:Image ImageUrl="Images/checkmark_s.png" runat="server" Visible=<%#  showImageIfCalled((string)Eval("isCalled")) %> />
</ItemTemplate>
</asp:TemplateField>

Это функция, которая возвращает либо true, либо false

protected bool showImageIfCalled(string val)
    {
        if (val == "called")
           return true;
        else
            return false;
    }

Обратите внимание, что я не использую «одинарные кавычки»двойные кавычки "перед Visible = поле

0 голосов
/ 11 октября 2011

Если бы вы привязывались к логическому столбцу в источнике данных, вы могли бы добавить CheckBoxField к столбцам GridView, и это отобразит то, что вам нужно.

Но звучит так, будто вы хотите проверитьполе на основе текстового столбца.Один из способов обойти это - добавить логический столбец к источнику данных после его извлечения и вручную установить это поле для каждой строки на основе текстового поля.

Надеюсь, это имеет смысл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...