日期:2014-05-17  浏览次数:20399 次

asp.net 实现新建按钮和编辑按钮跳转到同一个页面
问题是这样的,页面中有repeater控件,对于里面的记录,我想通过编辑和新建按钮访问到同一个页面,从而进行编辑操作或者修改操作,编辑的时候呢,ID是用commandname记录下来,传递的时候,用URL传递,而点击新建按钮的时候不用传递值,我是想问,如何判断操作是编辑还是新建,或者说如何判断开页面是通过点击编辑按钮的方式打开,还是点击新建按钮打开的。
C# code

    protected void btnAddCategory_Click(object sender, EventArgs e)
    {
        string strCommand = "window.open('CategoryManage/CategoryAddition.aspx')";
        ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "", strCommand, true);
    }



C# code

    protected void btnEditCommand(object sender, CommandEventArgs e)
    {
        string strCommand = "window.open('CategoryEdit.aspx?ID=" + e.CommandName.ToString() + "')";
        ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "", strCommand, true);            
    }



上面的两个函数原来是导向不同的页面,现在想同一转向'CategoryEdit.aspx

自己的想法是在点击新建的时候,传一些特征值用以判断是什么操作,感觉不太正规,向大家请教!

------解决方案--------------------
CategoryEdit.aspx?action=ADD
CategoryEdit.aspx?action=Edit&ID=123

或者ADD:CategoryEdit.aspx?ID=0 EDIT:CategoryEdit.aspx?ID=123 ID>0的时候就是编辑,等于0的时候就是新建
------解决方案--------------------
HTML code

<asp:LinkButton ID="lnkbtnAdd" runat="server" Text="添加" CommandName="Add"></asp:LinkButton>

 <asp:LinkButton ID="lnkbtnEdit" runat="server" Text="编辑" CommandName="Edit" CommandArgument='<%#Eval("id") %>'></asp:LinkButton>

------解决方案--------------------
或者还应该把CommandName当作一个参数传过去 用作在子页面的时候
判断是执行添加操作还是编辑操作
------解决方案--------------------
额外的新增一个参数传,通过参数来进行判断是新增还是编辑操作
------解决方案--------------------
CategoryEdit.aspx?
CategoryEdit.aspx?ID=123

if(request.QueryString["ID"]!=null)
{
编辑
}
else
{
添加
}
------解决方案--------------------
直接获取ID的值,有值就是编辑,没值就是新增
或者加一个type 参数 type=New 新增 type=Edit 编辑。
在页面获取这个参数即可。。

------解决方案--------------------
顶楼上,通过传过去的参数来判断是否是新增还是编辑。