【发布时间】:2012-07-10 19:11:59
【问题描述】:
这可能看起来像重复,但我不这么认为。我已经搜索过stackoverflow,可能还不够。
这是我的挑战:
<asp:LinkButton runat="server" ID="DeleteRow" CommandName="deleterow"
CommandArgument='<%# Eval("ID") %>' Text="Delete"
OnClientClick="return confirm('Are you sure you want to delete this record?');" />
如果您第一次单击该链接,则不会触发 OnRowCommand。当你第二次点击它时,它就起作用了。
我查看了源代码并发现了这些差异。
//When you first load the page: the GUID is the PK for that row
1. javascript:__doPostBack('ctl00$content$gvSchoolClasses$58fd1759-f358-442e-bf73-2e9cedfc27e8$DeleteRow','')
//After the link was clicked the first time, the link changed and the ID empty, but works
2. javascript:__doPostBack('ctl00$content$gvSchoolClasses$ctl02$DeleteRow','')
我从asp:LinkButton 的href 复制了两个代码,用于点击前和点击后。
怎么了?我的页面上只有一个其他事件RowDataBound。
protected void gvSchoolClasses_RowDataBound(object sender, GridViewRowEventArgs e)
{
e.Row.ID = Guid.NewGuid().ToString();
}
protected void Page_Load(object sender, EventArgs e)
{
CheckAuthentication();
if (!Page.IsPostBack)
{
ClassesAcademicYearLabel.Text = "- Year " + Setting.Year;
//FillClassesList(); //filling some combo boxes. Have checked the codes here too
//FillLettersList(); //they didn't affect the Grid
FillGrid();
}
ClassErrorLabel.Visible = false;
}
【问题讨论】:
-
介意分享您的
RowDataBound事件处理代码吗?我很好奇您为什么将其排除为问题来源 -
我相信里面的代码应该不会影响到linkButton。影响网格
-
gvSchoolClasses.DataBind()在哪里被调用?Page_Load?