【问题标题】:Get submit button id for query获取提交按钮 id 进行查询
【发布时间】:2017-02-01 14:02:05
【问题描述】:

我在女巫中有一个母版页,有 30 多个按钮,例如(java、asp、php、sql、c、c++ 等...) 还有一个问题表。所有问题都标有一个主题,如 asp、java 等。

我想根据点击按钮获取数据。 怎么可能?

protected void BindRepeaterData()
{
    con.Open();
    SqlCommand cmd = new SqlCommand("SELECT * from question", con);
    int count = (int)cmd.ExecuteScalar();
    DataSet ds = new DataSet();
    SqlDataAdapter da = new SqlDataAdapter(cmd);
    da.Fill(ds);
    RepDetails.DataSource = ds;
    RepDetails.DataBind();
    con.Close();
}

(我认为一个按钮一页不是一个好主意。)

【问题讨论】:

    标签: asp.net sql-server-2008


    【解决方案1】:

    有几种方法可以捕获 Data 内部的按钮点击,例如 Repeater、GridView、ListView。

    最简单的方法是使用 Command 事件而不是 Click 事件。

    <%-- Let say this button is located inside Repeater control.--%>
    <asp:Button ID="DoSomethingButton" runat="server" Text="Home"
        OnCommand="DoSomethingButton_Command" CommandArgument="<%# Eval("Id") %>" />
    
    // Retrieve e.CommandArgument from code-behind.
    protected void DoSomethingButton_Command(object sender, CommandEventArgs e)
    {
        int id = Convert.ToInt32(e.CommandArgument);
    }
    

    【讨论】:

    • 您需要在数据重复控件CommandArgument='&lt;%# Eval("Id") %&gt;'内使用单引号
    【解决方案2】:

    如果您想要按钮本身的ID,您可以将发件人转换回按钮并获取它的 ID。

    protected void Button1_Click(object sender, EventArgs e)
    {
       Button button = sender as Button;
       string id = button.ID;
    }
    

    【讨论】:

      【解决方案3】:

      如果我正确理解您的问题,您可以根据按钮信息从表格中选择字段,例如以这种方式。您可以对不同的按钮使用相同的事件处理程序。希望这会有所帮助。

          protected void Btn1_Click(object sender, EventArgs e)
          {
              Button button = sender as Button;
              string question = readData(button.Text);
              //do further actions
          }
      
          private string readData(string subject)
          {
              string question = string.Empty;
              using (SqlConnection con = new SqlConnection(/*connection_string*/))
              {
                  using (SqlCommand cmd = new SqlCommand("SELECT question from question_table where subject = @subject", con))
                  {
                      cmd.CommandType = CommandType.Text;
                      cmd.Parameters.AddWithValue("@subject", subject);
                      con.Open();
                      object o = cmd.ExecuteScalar();
                      if (o != null){
                          question = o.ToString();
                      }
                      con.Close();
      
                  }
              }
              return question;
          }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-09-27
        • 2019-03-10
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多