【问题标题】:Multiple command in one linkbutton control一个链接按钮控件中的多个命令
【发布时间】:2013-07-24 04:47:42
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      您不需要创建两个命令。

      首先将命令名称设置为编辑。因此点击它。它将在控件中显示数据。 同样在单击事件中将命令名称设置为更新。 并在再次更新后将命令名称设置为 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
       }
      

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

      希望对您有所帮助。

      【讨论】:

      • 您好,我很抱歉,但我两周前刚开始学习 asp.net,我有后续问题,上面的代码。我的 aspx 代码会是什么样子?顺便说一句,我使用的是 3 层架构。谢谢
      【解决方案3】:

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

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

      希望对您有所帮助。

      【讨论】:

      • 非常感谢您的帮助。
      猜你喜欢
      • 2017-06-19
      • 1970-01-01
      • 1970-01-01
      • 2021-07-08
      • 1970-01-01
      • 1970-01-01
      • 2015-05-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多