gpt4 book ai didi

c# - 将 asp.net 窗体 View 更改为从另一个页面插入模式

转载 作者:太空宇宙 更新时间:2023-11-04 16:23:52 33 4
gpt4 key购买 nike

我有 2 个用 ASP.NET Web Froms 编写的 ASP.NET 页面。 在第 1 页上,我有主 GridView 控件。在第 2 页上,我在 From View 控件中列出了详细信息。

我在第 1 页上有一个按钮。单击按钮。我想改变 从查看模式到插入。有什么办法可以做到吗?

我的代码如下:

第 1 页:ASPX 页面:按钮和 GridView

<asp:Panel ID="pnl" runat="server">
<table>
<tr>
<td>
<asp:Button ID="btnNewIssue" Text="Create New Issue" runat="server" OnClick="btnNewIssue_Click" />
</td>
</tr>
</table>
</asp:Panel>
<asp:Panel>
<asp:GridView ID="gvTasks" runat ="server">
Grid View Code--------------------------------
</asp:GridView>
</asp:Panel>

第 2 页:ASPX.CS 页面:

 protected void btnNewIssue_Click(object sender, EventArgs e)
{
int index = 0;

What should go here ????



}

protected void gvTasks_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "Details")
{
int index = Convert.ToInt32(e.CommandArgument);

StringBuilder sb = new StringBuilder();
sb.Append("~/Details.aspx?TaskID=");
sb.Append(index);

Response.Redirect(sb.ToString());

//Response.Redirect("~/Details.aspx?TaskID=1234");

}

}

第 2 页:aspx 表单 View

<asp:FormView ID="FormView1" runat="server">
<ItemTemplate>
---Item Template Code....
</ItemTemplate>
<EditItemTemplate>
--- Edit Item Template Code....
</EditItemTemplate>
<InsertItemTemplate>
--- Insert Item Template Code....
</InsertItemTemplate>
</asp:FormView>

第 2 页:aspx.cs

protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{

FillFormView();
}
}

private void FillFormView()
{
int taskid = int.Parse(Request.QueryString["TaskID"]);

----- Fetch dlist from Service based on taskid-----
FormView1.DataSource = dlist;
FormView1.DataBind();
}



protected void FormView1_ModeChanging(Object sender, FormViewModeEventArgs e)
{

if (e.NewMode == FormViewMode.Edit)
{
Label lblTaskId = ((Label)FormView1.FindControl("lblTaskID"));
Label lblTaskTitle = ((Label)FormView1.FindControl("lblTaskTitle"));
FormView1.ChangeMode(e.NewMode);
FillFormView();
}
else
{
FormView1.ChangeMode(e.NewMode);
FillFormView();
}


}

最佳答案

改变你的FillFormView函数

private void FillFormView()
{

var taskId = Request.QueryString["TaskID"];

if (taskId == null){
FormView1.ChangeMode(FormViewMode.Insert);
return;
}

FormView1.ChangeMode(FormViewMode.Edit);
/// dlist from Service based on taskid-----
FormView1.DataSource = dlist;
FormView1.DataBind();
}

FormView1_ModeChanging 函数不需要。

还有一件事,使用 string.Format 而不是 StringBuilder 类

protected void gvTasks_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "Details")
{
int index = Convert.ToInt32(e.CommandArgument);
Response.Redirect(string.Format("~/Details.aspx?TaskID={0}", index));
//Response.Redirect("~/Details.aspx?TaskID=1234");

}

}

关于c# - 将 asp.net 窗体 View 更改为从另一个页面插入模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27208175/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com