Как использовать источник данных GridView в коде программной части, чтобы не обрезать текст?

Привет и спасибо за поиск.

У меня есть GridView, и его источник данных настроен на внешний класс, который возвращает ArrayList. Теперь на странице aspx у меня есть TemplateField, а для свойства Text установлено значение

Text = '<%#Eval("Name") %>'

за исключением того, что имя всегда усекается, хотя имя в базе данных имеет значение намного больше. Я предполагаю, что gridview/databinding по какой-то причине усекает имя? Во всяком случае, я хочу отображать полное имя при наведении, поэтому в событии _RowDataBound у меня есть e.Row.Cells[2].ToolTip = что-то, и я не уверен, что это должно быть.

Могу ли я использовать Eval и в этом случае? И если да, то каким должен быть синтаксис? Если нет, то какие у меня варианты?


person Freakishly    schedule 12.12.2012    source источник


Ответы (1)


Небольшая игра с CSS и набором tooltip решит эту проблему.

Код позади:

   protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {   for(int i =0;i <GridView1.Rows.Count;i++)
        {
           Label lblName = (Label)GridView1.Rows[i].Cells[1].FindControl("lblname");
           lblName.ToolTip = "This is my toolTip";//  You can set tooltip as Fullname  
        }
    }

Default.aspx:

   <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" CssClass="gridMyClass"
        Width="125px" onrowdatabound="GridView1_RowDataBound">
        <Columns>
            <asp:TemplateField HeaderText="ID">
                <ItemTemplate>
                    <asp:Label ID="Label1" runat="server" Text='<%#Eval("Id") %>'></asp:Label>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField HeaderText="Name">
                <ItemTemplate>
                  <asp:Label ID="lblname" CssClass="myTxtClass"  runat="server" Text='<%#Eval("name")%>'></asp:Label>

                </ItemTemplate>
            </asp:TemplateField>
        </Columns>
    </asp:GridView>

CSS:

.myTxtClass{
    display:inline;
    position: relative;
    text-decoration:none;
    cursor:pointer;
}

.myTxtClass:hover:before{
    border: solid;
    border-color: red transparent;
    border-width: 6px 6px 0 6px;
    bottom: 20px;
    content: "";
    left: 50%;
    position: absolute;
    z-index: 99;
}


.myTxtClass:hover:after{
    background-color: red;
    opacity:0.7;
    border-radius: 5px;
    bottom: 26px;
    color: #fff;
    content: attr(title);
    left: 20%;
    padding: 5px 15px;
    position: absolute;
    z-index: 98;
    width: 220px;
} 

Скриншот:

Скриншот рабочего примера

person Satinder singh    schedule 12.12.2012