GridView Selectedindex更改事件未被触发 [英] GridView Selectedindex Changed Event not getting Fired
问题描述
Daer All;
设计代码:
< span class =code-keyword>< asp:GridView ID = grdView runat = server DataKeyNames = < span class =code-keyword> ID AutoGenerateColumns = false
OnSelectedIndexChanged = grdView_SelectedIndexChanged > ;
< 列 >
< asp:BoundField DataField = ID 可见 = false HeaderText = ID > < / asp:BoundField >
< asp:BoundField DataField = NAME 可见 = true HeaderText < span class =code-keyword> = NAME > < / asp:BoundField >
< /列 >
< / asp:GridView >
C#代码背后:
受保护 void grdView_SelectedIndexChanged( object sender,EventArgs e)
{
try
{
string index = grdView.DataKeyNames.ToString();
}
catch (例外情况)
{
Response.Write(ex.Message);
}
}
一旦我点击gridview事件Selectedindex改变了没有被解雇..请指导我摆脱它..
如果你能给我一个例子来检索特定行的数据我正在选择网格Pls ..提前感谢: - )
默认点击一行,你需要在gridview中有一个按钮触发select命令不会解雇这个事件。查看此链接 http://stackoverflow.com/questions/8358641/why- doesnt-my-gridview-selectedindexchanged-event-fire [ ^ ]
问候
Pawan
< blockquote>下面的Codings是从ASP Datagrid中检索数据。那些开始使用ASP.net这段代码的人会非常有用的知道。如果你遇到这个代码的问题,请回复我。让我试着帮助你:-)请不要犹豫,通过所有的代码。希望这些代码在相应位置的复制粘贴将通过更改您自己的连接字符串来工作。谢谢:-)
ASPX代码:
< !DOCTYPE html PUBLIC - // W3C // DTD XHTML 1.0 Transitional // EN http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd >
< html xmlns = http://www.w3.org/1999/xhtml >
< head runat = 服务器 >
< title > Untitled Page < / title >
< script 语言 = javascript type = text / javascript >
函数DO(ID){
document.getElementById( hdnID)。value = ID;
document.getElementById(form1)。submit();
}
< / script >
< / head >
< body >
< 表格 < span class =code-attribute> id = form1 runat = server >
< div >
< 表 宽度 = 100% >
< tr > ;
< td colspan = 2 align = center >
< asp:DataGrid ID = grdview runat = 服务器 AutoGenerateColumns = false OnItemDataBound = ItemBound >
< 列 >
< span class =code-keyword>< asp:BoundColumn 数据字段温泉n> = ID HeaderText = ID 可见 = false > < / asp :BoundColumn >
< asp:BoundColumn DataField = 名称 HeaderText < span class =code-keyword> = NAME < span class =code-keyword>> < / asp:BoundColumn < span class =code-keyword>>
< / Columns >
< / asp: DataGrid >
< / td >
< / tr >
< tr >
< TD 跨度> <跨度class =code-attribute> colspan = 2 align = center >
< asp:TextBox ID = txtName runat = server > < / asp:TextBox >
< 输入 type = 隐藏 id = hdnID < span class =code-attribute> runat = server / >
< / td >
< / tr >
< span class =code-keyword>< / table >
< / div >
< / form >
< / body >
< / html >
C#代码:
公共部分类Ganesh:System.Web.UI.Page
{
SqlConnection con;
protected void Page_Load(object sender,EventArgs e)
{
try
{
con = new SqlConnection(@data source = GANESH-VAIO; initial catalog = GANESH; user id = sa; password = cool);
if(!IsPostBack)
{
FillGrid();
}
else
{
if(!string.IsNullOrEmpty(hdnID.Value))
{
GetValue();
ViewState [ID] = hdnID.Value;
hdnID.Value =;
}
}
}
catch(例外情况)
{
Response.Redirect(ex.Message);
}
}
public void GetValue()
{
DataSet ds;
try
{
ds = new DataSet();
con.Open();
S. qlDataAdapter dr = new SqlDataAdapter(select id,study from name =''+ hdnID.Value.Trim()+'',con);
dr.Fill(ds) ;
if(ds!= null&& ds.Tables.Count> 0&& ds.Tables [0] .Rows.Count> 0)
{
txtName.Text = ds.Tables [0] .Rows [0] [NAME]。ToString();
}
}
catch(exception ex)
{
throw ex;
}
}
protected void ItemBound(object sender,DataGridItemEventArgs e)
{
TableRow dr;
try
{
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
dr = (TableRow)e.Item.Cells [0] .Parent;
dr.Attributes.Add(OnClick,DO(''+ e.Item.Cells [0] .Text + ''););
}
}
catch(例外情况ex)
{
Response.Redirect(ex.Message);
}
}
protected void FillGrid()
{
DataSet ds;
try
{
ds = new DataSet();
con.Open();
// SqlDataAdapter dr = new SqlDataAdapter (选择id,来自学习的名字,con);
//dr.Fill(ds);
//grdview.DataSource = ds;
SqlCommand cmd = new SqlCommand(select id,study from study,con);
SqlDataReader read = cmd.ExecuteReader();
grdview.DataSource =读;
grdview.DataBind();
}
catch(例外情况)
{
抛出前一个;
}
}
}
数据库代码:
CREATE TABLE STUDY(ID CHAR ( 16 ),NAME VARCHAR ( 100 ))
INSERT INTO STUDY(ID,NAME) VALUES (REPLACE(( RIGHT (NEWID(),< span class =code-digit> 17 )),' - ',< span class =code-string>' '),' GANESH')
INSERT INTO STUDY(ID ,NAME) VALUES (REPLACE(( RIGHT (NEWID(), 17 )),' - ',' ') ,' RAMESH')
INSERT INTO STUDY(ID,NAME) VALUES (REPLACE((正确(NEWID(), 17 )),' - ',' '),' SURESH')
SELECT * FROM STUDY
谢谢&此致,
Ganesh kumar K
Daer All;
Design Code:
<asp:GridView ID="grdView" runat="server" DataKeyNames="ID" AutoGenerateColumns="false"
OnSelectedIndexChanged="grdView_SelectedIndexChanged">
<Columns>
<asp:BoundField DataField="ID" Visible="false" HeaderText="ID"></asp:BoundField>
<asp:BoundField DataField="NAME" Visible="true" HeaderText="NAME"></asp:BoundField>
</Columns>
</asp:GridView>
C# Code Behind :
protected void grdView_SelectedIndexChanged(object sender, EventArgs e)
{
try
{
string index = grdView.DataKeyNames.ToString();
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
}
Once I''m Clicking the gridview The event Selectedindex changed is not getting fired.. Kindly guide me to get out of it..
And If you can give me a example to retrieve data of particular row which I''m selecting from grid Pls.. thanks in advance :-)
You need to have a button firing select command in the gridview by default clicking a row does not fire this event. check this link out http://stackoverflow.com/questions/8358641/why-doesnt-my-gridview-selectedindexchanged-event-fire[^]
Regards
Pawan
This below Codings is to retrieve a data from ASP Datagrid. Those who are beginers to ASP.net this code will be very much useful to know.Please revert me if you facing any problem with this code.Let me try to help you :-)Please don''t hesitate to go through all the codes..Hope just a copy paste of these codes in corresponding places will be works by changing your own connection string..Thanks :-)
ASPX Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>Untitled Page</title> <script language="javascript" type="text/javascript"> function DO(ID) { document.getElementById("hdnID").value = ID; document.getElementById("form1").submit(); } </script> </head> <body> <form id="form1" runat="server"> <div> <table width="100%"> <tr> <td colspan="2" align="center"> <asp:DataGrid ID="grdview" runat="server" AutoGenerateColumns="false" OnItemDataBound="ItemBound"> <Columns> <asp:BoundColumn DataField="ID" HeaderText="ID" Visible="false"></asp:BoundColumn> <asp:BoundColumn DataField="NAME" HeaderText="NAME"></asp:BoundColumn> </Columns> </asp:DataGrid> </td> </tr> <tr> <td colspan="2" align="center"> <asp:TextBox ID="txtName" runat="server"></asp:TextBox> <input type="hidden" id="hdnID" runat="server" /> </td> </tr> </table> </div> </form> </body> </html>
C# Code:
public partial class Ganesh : System.Web.UI.Page
{
SqlConnection con;
protected void Page_Load(object sender, EventArgs e)
{
try
{
con = new SqlConnection(@"data source=GANESH-VAIO;initial catalog=GANESH;user id=sa;password=cool");
if (!IsPostBack)
{
FillGrid();
}
else
{
if (!string.IsNullOrEmpty(hdnID.Value))
{
GetValue();
ViewState["ID"] = hdnID.Value;
hdnID.Value = "";
}
}
}
catch (Exception ex)
{
Response.Redirect(ex.Message);
}
}
public void GetValue()
{
DataSet ds;
try
{
ds = new DataSet();
con.Open();
SqlDataAdapter dr = new SqlDataAdapter("select id,name from study where id=''" + hdnID.Value.Trim() + "''", con);
dr.Fill(ds);
if(ds!=null && ds.Tables.Count>0&&ds.Tables[0].Rows.Count>0)
{
txtName.Text = ds.Tables[0].Rows[0]["NAME"].ToString();
}
}
catch (Exception ex)
{
throw ex;
}
}
protected void ItemBound(object sender, DataGridItemEventArgs e)
{
TableRow dr;
try
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
dr = (TableRow)e.Item.Cells[0].Parent;
dr.Attributes.Add("OnClick", "DO(''" + e.Item.Cells[0].Text + "'');");
}
}
catch (Exception ex)
{
Response.Redirect(ex.Message);
}
}
protected void FillGrid()
{
DataSet ds;
try
{
ds = new DataSet();
con.Open();
//SqlDataAdapter dr = new SqlDataAdapter("select id,name from study", con);
//dr.Fill(ds);
//grdview.DataSource = ds;
SqlCommand cmd = new SqlCommand("select id,name from study", con);
SqlDataReader read = cmd.ExecuteReader();
grdview.DataSource = read;
grdview.DataBind();
}
catch (Exception ex)
{
throw ex;
}
}
}
DATABASE CODE :
CREATE TABLE STUDY(ID CHAR(16),NAME VARCHAR(100)) INSERT INTO STUDY (ID,NAME) VALUES (REPLACE((RIGHT(NEWID(),17)),'-',''),'GANESH') INSERT INTO STUDY (ID,NAME) VALUES (REPLACE((RIGHT(NEWID(),17)),'-',''),'RAMESH') INSERT INTO STUDY (ID,NAME) VALUES (REPLACE((RIGHT(NEWID(),17)),'-',''),'SURESH') SELECT * FROM STUDY
Thanks & Regards,
Ganesh kumar K
这篇关于GridView Selectedindex更改事件未被触发的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!