Parazival Ответов: 2

Я хочу, чтобы отобразить данные из GridView в строке(при наведении мыши )


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



То что я пробовал не работает пожалуйста помогите мне

Что я уже пробовал:

<div style="высота: 450px; ширина: 100%">
&ЛТ;в ASP:GridView в идентификатор="гв" атрибут runat="сервер" AutoGenerateColumns="false" - в CssClass="менеджера mgrid"
AlternatingRowStyle-CssClass="alt" GridLines="None" OnRowDataBound="gv_RowDataBound">
<столбцы>
<asp:BoundField DataField="Column1" HeaderText="C1" />
<asp:BoundField DataField="Column2" HeaderText="C2" />
<asp:BoundField DataField="Column3" HeaderText="C3" />
</колонки>
</asp:GridView>
</div>
< div id="divDetail">
</div>
~~~~~~~~~~~~~~~~~~~~~~~~~
ВАР iRowIndex;
события mouseevent функцию(ссылку objref, ЭВТ, по убыванию) {
if (evt.type == "наведение курсора мыши") {
ссылку objref.стиль.указатель курсора ='';
ссылку objref.стиль.свойство backgroundColor = "#еее";
ShowDiv(desc, evt.pageY);
}
еще {
ссылку objref.стиль.свойство backgroundColor = "#ФФФ";
iRowIndex = ссылку objref.параметр rowindex;
Хидедив();

}
}
функция ShowDiv(desc, pos) {
document.getElementById('divDetail').style.display = 'block';
документ.метода getElementById('divDetail').innerHTML будет = убыв;
document.getElementById('divDetail').style.marginTop = pos - 25 + 'px';
}
функция HideDiv() {
document.getElementById('divDetail').style.display = 'none';
}
функция подсветки(objRef, evt) {
if (evt.type == "наведение курсора мыши") {
ссылку objref.стиль.блок отображения ='';
документ.метода getElementById('гв').строк[iRowIndex].стиль.свойство backgroundColor = "#еее";
}
еще {
if (evt.type == "mouseout") {
документ.метода getElementById('гв').строк[iRowIndex].стиль.свойство backgroundColor = "#ФФФ";
ссылку objref.стиль.дисплей = значение 'None';
}
}
}

---------------------------
охраняемых недействительными gv_RowDataBound(объект отправителя, система.Веб.Пользовательского интерфейса.WebControls.GridViewRowEventArgs e)
{
если (электронная.Подряд.RowType == DataControlRowType.Строкаданных)
{
строка sDetails = System.Строка.Пустой;
sDetails = "Подробности";
sDetails = sDetails + "имя:" +
DataBinder.Ивала(электронная.Подряд.Элемента Данных, "Столбец1").Метод toString() + "";
sDetails = sDetails + "Dept:" +
DataBinder.Ивала(электронная.Подряд.Элемента Данных, "Столбец2").Метод toString() + "";
sDetails = sDetails + "Desig:" +
DataBinder.Ивала(электронная.Подряд.Элемента Данных, "Столбец3").Метод toString() + "";
}
}

2 Ответов

Рейтинг:
1

Parazival

теперь анализировать Винсент Маверик Дюрано

упомянутые ниже

Ссылка[^]


Vincent Maverick Durano

Пожалуйста, не публикуйте свой ответ в качестве решения. Вместо этого используйте кнопку комментария под решением.

Рейтинг:
0

Vincent Maverick Durano

JavaScript на самом деле это не требуется, если только вам не нужна причудливая подсказка. В общем, вы можете просто сделать что-то вроде этого в RowDataBound событие:

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
            if (e.Row.RowType == DataControlRowType.DataRow) 
            { 
                ViewState["OrigData"] = e.Row.Cells[0].Text; 
                if (e.Row.Cells[0].Text.Length >= 30) //Just change the value of 30 based on your requirements 
                { 
                    e.Row.Cells[0].Text = e.Row.Cells[0].Text.Substring(0, 30) + "..."; 
                    e.Row.Cells[0].ToolTip = ViewState["OrigData"].ToString(); 
                }

             }

}