2016-08-21 53 views
0

我在模板字段中有一个命令按钮的gridview。 没有先选择行,我怎样才能获取命令按钮上点击事件的第一个单元格值?单击模板字段命令按钮时获取gridview单元格值

为了测试,我试图设置一个标签的文本的价值,但我认为,作为行不先选择,它不会工作

Label3.Text = "test " + GridView1.SelectedRow.Cells[1].Text; 

回答

0

您可以将行号作为一个CommandArgument按钮。

<asp:Button ID="Button1" CommandArgument='<%# Container.DataItemIndex %>' OnCommand="Button1_Command" runat="server" Text="Button" /> 

并从代码后面的行和列中获取正确的值。

protected void Button1_Command(object sender, CommandEventArgs e) 
{ 
    Label3.Text = "test " + GridView1.Rows[Convert.ToInt32(e.CommandArgument)].Cells[1].Text;  
} 

至于后来发现,你需要用GridView控件结合成!的IsPostBack,否则你会得到一个“无效的回发或回调参数”的错误。

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!IsPostBack) 
    { 
     GridView1.DataSource = myDataSource; 
     GridView1.DataBind(); 
    } 
} 

注意,在搜索的GridView细胞这样的(行数[0] .Cells [1]。文本)仅 作品与绑定列的列,而不是模板列和自动生成的 列。

+0

感谢您花时间回复。我尝试了你的建议,得到了这个错误......“无效的回发或回调参数。事件验证在配置中使用或页面中的<%@ Page EnableEventValidation =”true“%>启用。为了安全起见,此功能验证回发事件或回调事件的参数来自最初呈现它们的服务器控件。如果数据有效且期望,请使用ClientScriptManager.RegisterForEventValidation方法注册回发或回调数据以进行验证。 “ – DarkW1nter

+0

奇怪......在这里工作,在页面指令中同时使用'enableEventValidation = true'和'enableEventValidation = false'。 – VDWWD

+0

我需要enableEventValidation = false或它得到上面的错误,如果它是假的没有错误,但事件似乎并没有触发。 – DarkW1nter

相关问题