0

我是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>

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

4

3 回答 3

1

您不需要创建两个命令。

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

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
 }

或者,您可以使用两个链接按钮,一次可见一个。

希望这有帮助。

于 2013-07-24T05:54:46.923 回答
1

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

于 2013-07-24T05:54:50.517 回答
1

嗨,珍妮,使用这样的代码:-

 <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";
     }
}

希望这有帮助。

于 2013-07-25T07:18:21.940 回答