一个linkbutton控件中的多个命令

时间:2013-07-24 04:47:42

标签: asp.net events command web-controls asplinkbutton

我是asp.net开发的新手。我想问一个链接按钮是否有可能有两个或更多命令?

我想要发生的是我的链接按钮应该能够处理编辑和更新命令。一旦我点击网格视图中的链接,它将显示其各自控件上的数据(即名称的文本框将包含我点击的数据)然后,一旦我编辑文本框中的任何数据并单击它将更新的相同链接并保存在数据库中。

 <asp:TemplateField HeaderText="ID">
                    <ItemTemplate>
                        <asp:LinkButton ID="lnkEdit" runat="server" CommandArgument='<%#Eval("ID")%>'  CommandName="Update" 
                             HeaderText="ID" SortExpression="ID" Text='<%#Eval("ID")%>'> 
                        </asp:LinkButton>
                    </ItemTemplate> 
                </asp:TemplateField>

提前致谢。请帮忙!。 :)

3 个答案:

答案 0 :(得分:1)

您无需创建两个命令。

首先将命令名设置为“编辑”。因此点击它。它将在控件中显示数据。    同样在单击事件集命令名称中更新。    再次更新后,将命令名设置为编辑。

Write click event code like this.

 if(CommandName=="Edit")
 {
    //Fill Value in controls
    // Set CommandName to Update
 }
else if(CommandName=="Update")
 {
    // Update value in database
    // Set command name to Edit
 }

或者,您可以使用两个链接按钮,一次只能看到一个。

希望得到这个帮助。

答案 1 :(得分:1)

一个链接按钮不可能有多个命令名,但是当您单击链接按钮进行编辑时,您可以将命令名更改为“更新”。我认为这将解决您的问题。要更改链接按钮的命令名,请参阅{{3} }链接。

答案 2 :(得分:1)

嗨Jenny使用这样的代码: -

 <asp:TemplateField HeaderText="ID">
                <ItemTemplate>
                    <asp:LinkButton ID="lnkEdit" runat="server" CommandArgument='<%#Eval("ID")%>'  CommandName="Update" Onclick="lnkEdit_Click"
                         HeaderText="ID" SortExpression="ID" Text='<%#Eval("ID")%>'> 
                    </asp:LinkButton>
                </ItemTemplate> 
            </asp:TemplateField>

在aspx.cs页面编写代码如下: -

protected void lnkEdit_Click(object sender, EventArgs e)
{
   LinkButton btn = (LinkButton )sender;
   int Id = Convert.ToInt32(btn.CommandArgument.ToString());

   if(btn.CommandName=="Edit")
     {
         // Write here code for edit
          btn.CommandName="Update";
     }
   else if(btn.CommandName=="Update")
     {
         // Write here code for Update
          btn.CommandName="Edit";
     }
}

希望得到这个帮助。