Как получить идентификатор вызывающего элемента для JavaScript onclick - PullRequest
0 голосов
/ 02 мая 2018

У меня есть GridView, где каждая строка имеет информацию, и когда пользователь нажимает на строку больше, связанная, информация отображается в отдельном DIV (это работает), но когда я хочу получить доступ к строке (чтобы изменить / добавить классы CSS на нажмите) Я не могу нацелить строку. Как настроить таргетинг на строку, которой назначено событие JavaScript onclick?

Вот очень урезанная версия кода:

protected void vd_gv_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow) 
    {
        e.Row.Attributes.Add("onclick", "showTest(this)");
    }
}

Вот JS, который называется onclick:

<script type="text/javascript">
    function showTest(test) {
        // var rowTest1 = document.getElementById(this);
        // var rowTest2 = document.getElementById(this.id);
        // var rowTest3 = document.getElementById(test);
        // var rowTest4 = document.getElementById(test.id);

        var row = document.getElementById(test.id);
        var currentClass = row .className;

        row.className += "testClass";
    }
</script> 

При отладке страницы генерируется ошибка:

Empty string passed to getElementById().

Ответы [ 2 ]

0 голосов
/ 02 мая 2018

В итоге вот что я сделал:

row.Attributes["id"] = gv.ID + "_row_" + e.Row.RowIndex.ToString();

И получите ссылку здесь:

var row = document.getElementById(test.id);
0 голосов
/ 02 мая 2018

Вы можете попробовать test.target.id Потому что я думаю, что вы вызываете событие, когда нажимаете кнопку. Так что это пройдет событие в этом тесте.

...