2013-09-24 30 views
3

我有一个问题,这些简单的基础知识之一,但不知道它的行为。我有一个简单的GridView显示在使用VS 2010的asp.net页面上。页面加载正常,我可以看到Grid,但是当我尝试点击它时,什么也没有发生。这就像点击一个空的空间。试图将任何行数据发送到TextBox。在asp.net中的GridView不接受点击

供参考:

1)的GridView正在从一个DataAdapter和它自己的数据集填写。

2)OnSelectedIndexChanged事件已设置。

3)每个字段都绑定到数据库的特定字段。

GridView控件代码:

<asp:GridView runat="server" Width="300px" Height="100px" ID="mstPx_grdCtrl" 
     AutoGenerateColumns="False" onselectedindexchanged="mstPx_grdCtrl_SelectedIndexChanged" > 
    <Columns> 
     <asp:BoundField DataField="codPx" HeaderText="Código" /> 
     <asp:BoundField DataField="nombre" HeaderText="NOMBRE" /> 
     <asp:BoundField DataField="apellido" HeaderText="APELLIDO" /> 
    </Columns> 
</asp:GridView> 

C#代码背后:你可以看到两个选项我都试过...

protected void mstPx_grdCtrl_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    txtId.Text = mstPx_grdCtrl.SelectedRow.Cells[0].Text; 
    txtId.Text = mstPx_grdCtrl.Rows[mstPx_grdCtrl.SelectedIndex].Cells[1].Text; 
} 
+0

你试过就行'txtId.Text = mstPx_grdCtrl.Rows [设置断点什么mstPx_grdCtrl.SelectedIndex] .Cells [1] .Text;'并确保它正在执行,它有这样一个单元格? – NicoTek

回答

1

你需要在aspx文件添加该属性

AutoGenerateSelectButton="True" 

看看这里:http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.onselectedindexchanged.aspx

或者你可以使用一个

<asp:ButtonField DataTextField="code" /> 

,然后定义的onclick功能,该字段做你想要的

+0

库巴,感谢您的建议解决方案。仍然没有从点击行获取信息。我之前尝试过(AutoGenerateSelectButton =“True”),但我不认为这个问题会是因为这个。关于(ButtonField)由于某种原因,它不被视觉识别为asp控件。那ButtonField是GridView ???外的控件,只是双重检查...问候 –

+0

我会试试看,会让你知道谢谢 –