C# 如何从我正在编程构建的gridview中的linkbutton调用服务器端方法?
我有以下代码。 我以编程方式构建了一个grdiview,然后遍历并将其中一列更改为linkbutton。不幸的是,它从未调用服务器端的lb_Click方法。 有人面对过这个问题吗C# 如何从我正在编程构建的gridview中的linkbutton调用服务器端方法?,c#,gridview,server-side,linkbutton,C#,Gridview,Server Side,Linkbutton,我有以下代码。 我以编程方式构建了一个grdiview,然后遍历并将其中一列更改为linkbutton。不幸的是,它从未调用服务器端的lb_Click方法。 有人面对过这个问题吗 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; public partial class
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class _Default : Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (CommonMethods.logOn(Request.ServerVariables["LOGON_USER"]))
{
Response.Redirect("http://www.google.com");
}
// Now we have to build the questions
using (var context = new nVoteDataContext())
{
var retrievedQuestions = from q in context.questions
select new
{
q.id,
q.question1,
q.questionType
};
GridView_questions.DataSource = retrievedQuestions;
GridView_questions.DataBind();
GridView_questions.HeaderRow.Cells[0].Text = "#";
GridView_questions.HeaderRow.Cells[1].Text = "Question";
foreach (GridViewRow s in GridView_questions.Rows)
{
if (s.RowType == DataControlRowType.DataRow)
{
var lb = new LinkButton();
lb.CausesValidation = true;
lb.Attributes.Add("runat", "server");
lb.CommandName = "lb_Click";
lb.CommandArgument = s.Cells[0].Text;
lb.Text = s.Cells[1].Text;
s.Cells[1].Text = string.Empty;
s.Cells[1].Controls.Add(lb);
}
}
}
}
public void lb_Click(object sender, EventArgs e)
{
foreach (GridViewRow s in GridView_questions.Rows)
{
if (s.RowType == DataControlRowType.DataRow)
{
s.BackColor = System.Drawing.Color.Red;
}
}
}
}
您需要为linkbutton添加一个处理程序,以便在Click事件上调用lb_Click
lb.Click += lb_Click;
您需要为linkbutton添加一个处理程序,以便在Click事件上调用lb_Click
lb.Click += lb_Click;
如果您在动态控件方面做了很多工作,请查看以下两篇文章:,如果您在动态控件方面做了很多工作,请查看以下两篇文章:,哇-我很笨!:-)非常感谢!哇-我真傻!:-)非常感谢!