【问题标题】:3 linkbuttons one event handler3 个链接按钮 1 个事件处理程序
【发布时间】:2011-02-16 09:10:17
【问题描述】:

我是asp.net的初学者,我研究过但不是很清楚。

我有 3 个链接 lkn1,2,3

基本上,我在看这样的东西:

protected void lnkBtn_Click(object sender,EventArgs e)
{
  LinkButton lnkRes = sender as LinkButton;
  string text = lnkRes.Text.Trim();
  string sql = ""
  if(text.ToUpper() == "INBOX")
  {
     sql = "SELECT * FROM InboxTbl where receiver_id = "helloworld";
  }
  else if(text.ToUpper() == "DRAFT")
  {
     sql = "SELECT * FROM Inbox where sender_id="HelloWorld";
  }
  else if(text.ToUpper() == "SENT")
  {
     sql = "SELECT * FROM Inbox where sender_id="HelloWorld";
  }
  if(sql != "")
  {
      SqlDataAdapter adp = new SqlDataAdapter(sql,ConnectionString);
      DataSet ds = new DataSet();
      adp.Fill(ds,"tbl");
      GridView1.DataSource = ds.Tables["tbl"].DefaultView;
      GridView1.DataBind();
  }
}

这段代码怎么写,应该写在哪里,以便根据链接按钮的文本,执行相应的sql语句?

如果这与事件处理有关.. 3links 一个事件.. 请给我一些我可以阅读和理解的链接

【问题讨论】:

  • 你在这里得到的(除了一些语法错误)基本上是正确的。如果您将按钮连接到这个事件处理程序,它应该可以工作。对其进行编码,修复语法错误,然后单步调试调试器以确保它按照您的预期进行。
  • 注意你的sql语句:select *被认为是不好的做法,最好为你需要的每一列命名。当使用 select * 时,当添加、重命名、移动位置、删除列时,你会在脚下射击自己。

标签: asp.net linkbutton


【解决方案1】:

Here 是描述添加事件处理程序的链接。使用事件处理,当某个动作发生时,响应是调用某个函数(在我们的例子中为lnkBtn_Click)。为了让 3 个不同的 LinkBut​​tons 使用相同的功能,我们只需将相同的函数放在 OnClick 属性上 - 这就是使所有三个 LinkBut​​tons 的事件处理程序具有相同功能的原因。

【讨论】:

    【解决方案2】:

    在 HTML 中写如下

    <asp:LinkButton runat="server" id="lnk1" text="INBOX" OnClick="lnkBtn_Click" />
    <asp:LinkButton runat="server" id="lnk2" text="DRAFT" OnClick="lnkBtn_Click" />
    <asp:LinkButton runat="server" id="lnk3" text="SENT" OnClick="lnkBtn_Click" />
    

    【讨论】:

    • 只写这个标记就足够了......我不这么认为
    【解决方案3】:

    不使用文本属性,而是使用源来查找单击了哪个按钮。休息对我来说一切都很好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-09-10
      • 1970-01-01
      • 1970-01-01
      • 2017-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多