2

問題があります。マウスクリックでグリッドビューの行を選択したいと思います。

私のコードはこれです:

protected void PeopleGridView_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            e.Row.Attributes["onmouseover"] = "this.style.cursor='hand';this.style.textDecoration='underline';";
            e.Row.Attributes["onmouseout"] = "this.style.textDecoration='none';";

            e.Row.Attributes["onclick"] = ClientScript.GetPostBackClientHyperlink(this.gvdetails, "Select$" + e.Row.RowIndex);
        }
    }

動作していません。どうしてか分かりません?

plzはそれに関して私に提案します。

"ありがとう"

4

1 に答える 1

4

GridViewタグの下のASPXページでgridviewのASP.Net選択行に関するチュートリアルを見つけました。

<SelectedRowStyle BackColor="Orange" />

コードビハインドで次のことを試してください。

protected override void Render(System.Web.UI.HtmlTextWriter writer) 
{ 
    foreach (GridViewRow row in PeopleGridView.Rows) { 
        if (row.RowType == DataControlRowType.DataRow) { 
            row.Attributes["onmouseover"] =  
               "this.style.cursor='hand';this.style.textDecoration='underline';"; 
            row.Attributes["onmouseout"] =  
               "this.style.textDecoration='none';"; 
            // Set the last parameter to True 
            // to register for event validation. 
            row.Attributes["onclick"] =  
             ClientScript.GetPostBackClientHyperlink(PeopleGridView, 
                "Select$" + row.DataItemIndex, true); 
        } 
    } 
    base.Render(writer); 
}

次に、RowCommand(のようなもの)を使用してこのイベントをキャッチできます。

private void PeopleGridView_RowCommand(object sender, System.Web.UI.WebControls.GridViewCommandEventArgs e) 
{ 
    if (e.CommandName == "Select") { 
        // Get the list of customers from the session  
        List<Customer> customerList = 
                 Session["Customers"] as List<Customer>;

         Debug.WriteLine(customerList[Convert.ToInt32(e.CommandArgument)].LastName);
    } 
}
于 2012-04-25T11:11:24.147 に答える