Постбэк при нажатии на строку в gridview

Я использую код, найденный здесь, чтобы в моем представлении сетки были интерактивные строки. Код для этого:

    protected void gvdownloadaccounts_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        e.Row.Cells[0].Visible = false; //hide the ID

        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            e.Row.Attributes["onmouseover"] = "this.style.cursor='pointer';this.style.textDecoration='underline';";
            e.Row.Attributes["onmouseout"] = "this.style.textDecoration='none';";
            e.Row.ToolTip = "Click to select row";
            e.Row.Attributes["onclick"] = this.Page.ClientScript.GetPostBackClientHyperlink(this.gvdownloadaccounts, "Select$" + e.Row.RowIndex);
        }
    }

... который отлично работает! ... за исключением того, что мне нужно сделать так, чтобы "onclick" запускал метод С# в коде позади. Этот метод получает данные из базы данных и заполняет некоторые веб-элементы управления (например, текстовые поля и т. д.) этими данными. Кажется, это не должно быть так уж сложно, поэтому, если бы кто-то мог просто пнуть меня в правильном направлении, это было бы здорово.

Я играл с идеей просто перенаправить на ту же страницу, но со строкой запроса, чтобы я мог поймать свой код на page_load. Но как и следовало ожидать:

e.Row.Attributes["onclick"] = Response.Redirect("www.google.com");

... не работает.


person CptSupermrkt    schedule 13.04.2012    source источник
comment
Да, я только что понял, что могу сделать [onclick] = location.href='view.aspx?id= + ..., чтобы реализовать мою идею строки запроса. Еще хотелось бы узнать, что за история с обратной передачей и вызовом метода С#.   -  person CptSupermrkt    schedule 13.04.2012


Ответы (1)


Разметка

<asp:Button ID="btn" runat="server" style="display:none;" OnClick="Btn_Click" OnClientClick="UpdateControl();" />

//Эта кнопка будет скрыта. Будет полезно выполнить щелчок и в коде вызова функции в его обработчике. Теперь в обработчике напишите код для вызова вашего метода С#.

Java-скрипт

//Выполнение нажатия скрытой кнопки.

<script language="javascript" type="text/javascript">
    function PerformClick() {
        document.getElementById('<%=btn.ClientID %>').click();
    }
</script>

Как вы будете вызывать метод С# при каждом щелчке по отдельной строке?

e.Row.Attributes["onclick"] = "<script language='javascript' type='text/javascript'>function PerformClick() {document.getElementById('<%=btn.ClientID %>').click();</script>";

person Pankaj    schedule 13.04.2012