可点击的gridview行 [英] Clickable gridview rows

查看:52
本文介绍了可点击的gridview行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用gridview .i需要使gridview行可点击,因为在选定的索引更改事件我需要执行数据库操作。所以我使用以下代码。

  protected   void  GridView1_RowDataBound( object  sender,GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
// < span class =code-comment>获取gridview中按钮字段的引用。
LinkBut​​ton _singleClickButton =(LinkBut​​ton)e.Row.Cells [ 0 ].Controls [ 0 ];
string _jsSingle = ClientScript.GetPostBackClientHyperlink(_singleClickButton, 选择$ + e.Row.RowIndex);
e.Row.Style [ cursor] = hand;
e.Row.Attributes [ onclick] = _jsSingle;
}
}
}
受保护 void GridView1_SelectedIndexChanged ( object sender,EventArgs e)
{
GridViewRow selectedRow = GridView1.SelectedRow;
lblSelectedRow.Text = GridView1.SelectedIndex.ToString();
lblName.Text = selectedRow.Cells [ 2 ]。文字;
lblEmpId.Text = selectedRow.Cells [ 3 ]。文字;
}

受保护 覆盖 void Render(HtmlTextWriter writer)
{
foreach (GridViewRow row in GridView1.Rows)
{
if (row.RowType == DataControlRowType.DataRow)
{
ClientScript.RegisterForEventValidation(((LinkBut​​ton)row.Cells [ 0 ]。控件[ 0 ]) .UniqueID, 选择$ + row.RowIndex);
}
}
base .Render(writer);
}



我能够点击该行,但我无法控制所选索引更改事件,即控件不会执行此事件我获得此代码的链接在那里工作正常。唯一的区别是我的页面包含附加到它的母版页。我也没有使用更新面板。我错过了什么。什么都出错了。

帮我..

解决方案

+ e.Row.RowIndex);
e.Row.Style [ cursor] = hand;
e.Row.Attributes [ onclick] = _jsSingle;
}
}
}
受保护 void GridView1_SelectedIndexChanged( object sender,EventArgs e)
{
GridViewRow selectedRow = GridView1.SelectedRow;
lblSelectedRow.Text = GridView1.SelectedIndex.ToString();
lblName.Text = selectedRow.Cells [ 2 ]。文字;
lblEmpId.Text = selectedRow.Cells [ 3 ]。文字;
}

受保护 覆盖 void Render(HtmlTextWriter writer)
{
foreach (GridViewRow row in GridView1.Rows)
{
if (row.RowType == DataControlRowType.DataRow)
{
ClientScript.RegisterForEventValidation(((LinkBut​​ton)row.Cells [ 0 ]。控件[ 0 ]) .UniqueID, 选择


+ row.RowIndex) ;
}
}
base .Render(writer);
}



我能够点击该行,但我无法控制所选索引更改事件,即控件不会执行此事件我获得此代码的链接在那里工作正常。唯一的区别是我的页面包含附加到它的母版页。我也没有使用更新面板。我错过了什么。什么都出错了。

帮助我..


请参阅我的提示 - 没有选择按钮的Fire GridView SelectedIndexChanged事件 [ ^ ]。

试试这个。调试时会转到 SelectedIndexChanged 事件。





问题用你的代码



我认为问题在于以下代码...

  string  _jsSingle = ClientScript.GetPostBackClientHyperlink(_singleClickButton, 选择

i m using gridview .i need to make gridview rows clickable since on selected index changed event i need to perform database operations.So i m using the following code.

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            // Get reference to button field in the gridview.
            LinkButton _singleClickButton = (LinkButton)e.Row.Cells[0].Controls[0];
            string _jsSingle = ClientScript.GetPostBackClientHyperlink(_singleClickButton, "Select$" + e.Row.RowIndex);
            e.Row.Style["cursor"] = "hand";
            e.Row.Attributes["onclick"] = _jsSingle;
        }
    }
}
protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
    GridViewRow selectedRow = GridView1.SelectedRow;
    lblSelectedRow.Text = GridView1.SelectedIndex.ToString();
    lblName.Text = selectedRow.Cells[2].Text;
    lblEmpId.Text = selectedRow.Cells[3].Text;
}

protected override void Render(HtmlTextWriter writer)
{
    foreach (GridViewRow row in GridView1.Rows)
    {
        if (row.RowType == DataControlRowType.DataRow)
        {
            ClientScript.RegisterForEventValidation(((LinkButton)row.Cells[0].Controls[0]).UniqueID, "Select$" + row.RowIndex);
        }
    }
    base.Render(writer);
}


I m able to click the row but i am not able to get control over the selected index changed event i.e. the control doesnt go to this event while debugging.The link from which i got this code works fine there.the only difference is that my page contains master page attached to it.I m not using update panel too.Am i missing something.whats going wrong.
help me..

解决方案

" + e.Row.RowIndex); e.Row.Style["cursor"] = "hand"; e.Row.Attributes["onclick"] = _jsSingle; } } } protected void GridView1_SelectedIndexChanged(object sender, EventArgs e) { GridViewRow selectedRow = GridView1.SelectedRow; lblSelectedRow.Text = GridView1.SelectedIndex.ToString(); lblName.Text = selectedRow.Cells[2].Text; lblEmpId.Text = selectedRow.Cells[3].Text; } protected override void Render(HtmlTextWriter writer) { foreach (GridViewRow row in GridView1.Rows) { if (row.RowType == DataControlRowType.DataRow) { ClientScript.RegisterForEventValidation(((LinkButton)row.Cells[0].Controls[0]).UniqueID, "Select


" + row.RowIndex); } } base.Render(writer); }


I m able to click the row but i am not able to get control over the selected index changed event i.e. the control doesnt go to this event while debugging.The link from which i got this code works fine there.the only difference is that my page contains master page attached to it.I m not using update panel too.Am i missing something.whats going wrong.
help me..


Refer my Tip - Fire GridView SelectedIndexChanged Event without Select Button[^].
Try this. It goes to the SelectedIndexChanged Event while debugging.


Problem with your code

I think the problem is with the below code...

string _jsSingle = ClientScript.GetPostBackClientHyperlink(_singleClickButton, "Select


这篇关于可点击的gridview行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆