我对ASP.NET Webforms...My的问题还很陌生,因为我不能以任何方式触发LinkButton命令DetailsReportLink。我尝试了在!IsPostBack中绑定,但仍然没有成功...调试不会捕获GridView_RowCommand方法中的任何内容。
<asp:GridView ID="GridView" CssClass="Gridview" runat="server"
Width="100%" AutoGenerateColumns="False" OnRowCommand="GridView_RowCommand" ShowFooter="false">
<Columns>
<asp:TemplateField ItemStyle-Width="150px" HeaderText="User Info">
<ItemTemplate ><p style="text-align:left"><%#Eval("Name")%></p>
</ItemTemplate> </asp:TemplateField>
<asp:TemplateField ItemStyle-CssClass="text-left" ItemStyle-Width="110px" HeaderText="Mobile No">
<ItemTemplate>
<p style="text-align:center"><%# Eval("MobileNo")%></p>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ItemStyle-Width="80px" HeaderText="Key Gen">
<ItemTemplate>
<%# Eval("HishabNumber")%>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ItemStyle-Width="70px" HeaderText="Balance">
<ItemTemplate>
<%# Eval("LoanTakerBalance")%>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ItemStyle-Width="140px" >
<ItemTemplate>
<asp:LinkButton ID="DetailsLinkBtn" runat="server" CommandArgument='<%# Eval("MemberId")%>' CommandName="DetailsReportLink" CssClass="btn btn-info" Text="Details" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
<PagerStyle BackColor="#3C8DBC" ForeColor="White" />
<HeaderStyle BackColor="#3C8DBC" ForeColor="White" />
</asp:GridView>protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DataTable dt = objdalTransactionEntry.GetLoanReceivedByLoanTakerIdForLoanManagement(Sessions.Name.UserId);
if (dt.Rows.Count > 0)
{
GridView.DataSource = dt;
GridView.DataBind();
lblMessage.Visible = false;
}
else
{
GridView.DataSource = null;
GridView.DataBind();
lblMessage.Text = "No Info";
lblMessage.ForeColor = System.Drawing.Color.Red;
lblMessage.Visible = true;
}
}
}
protected void GridView_RowCommand(object sender, GridViewCommandEventArgs e)
{
//DEBUG DOES NOT REACH HERE
try
{
if (e.CommandName == "DetailsReportLink")
{
long MemberId = Convert.ToInt64(e.CommandArgument.ToString());
Response.Redirect("~/Pages/Member/MemberCreate?ID=" + System.Web.HttpUtility.UrlEncode(EncryptionDecryption.Encrypt(MemberId.ToString(), true)));
}
}
catch (Exception) { }
}发布于 2021-08-16 18:17:32
绝对必须在页面加载事件中删除gv的重新绑定。在IsPostBack = False时加载一次。
您不会,也永远不会在每次页面加载事件中重新加载和重新绑定网格-您将破坏任何可能的代码流,并且重新绑定将重新设置行命令事件。删除重新绑定网格的else代码。gv将很好地保持其状态,并在回发后很好地存活下来,并保留其价值。不要在每个帖子上重新绑定整个网格。在您的例子中,出于某种奇怪的原因,在回发的"else“中- true,您有代码将gv置为空-该代码必须删除!
https://stackoverflow.com/questions/68800313
复制相似问题