asp.Netgridviewはどのように行クリックイベントを実現します

4985 ワード

ステップ1:行をバインドしてイベントをクリック
protected void GV_DATA_RowDataBound( object sender, GridViewRowEventArgs e )
    {
        if( e.Row.RowType == DataControlRowType.DataRow )
        {
            e.Row.Attributes.Add( "onmouseover", "if(this!=prevselitem){this.style.backgroundColor='#Efefef'}" );
            e.Row.Attributes.Add( "onmouseout", "if(this!=prevselitem){this.style.backgroundColor=''}" );
            e.Row.Attributes.Add( "onclick", e.Row.ClientID.ToString() + ".checked=true;selectx(this)" );
            e.Row.Attributes[ "style" ] = "Cursor:hand";
        } 
    }

または
 protected void gridCiqGoodsDeclarCheck_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            e.Row.Attributes["style"] = "cursor:hand";
            PostBackOptions myPostBackOptions = new PostBackOptions(this);
            myPostBackOptions.AutoPostBack = false;
            myPostBackOptions.PerformValidation = false;
            myPostBackOptions.RequiresJavaScriptProtocol = true; //  javascript: 
            String evt = Page.ClientScript.GetPostBackClientHyperlink(sender as GridView, "Select$" + e.Row.RowIndex.ToString());
            e.Row.Attributes.Add("onclick", evt);
        }

2番目のステップでは、行変更イベントを書くことができます.
  protected void gridCiqGoodsDeclarCheck_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (gridCiqGoodsDeclarCheck.SelectedRow == null)
                return;
            //     
            string logisticsNo = gridCiqGoodsDeclarCheck.SelectedRow.Cells[0].Text;
            if (string.IsNullOrEmpty(logisticsNo))
                return;
        }

ステップ3
EnableEventValidation="false" 

OK
その他の情報も参照できます.http://bbs.csdn.net/topics/340090915
          http://blog.csdn.net/junboyboy/article/details/17922037