我有一个超过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();
}
(我认为一个按钮的一页不是个好主意。)
答案 0 :(得分:0)
在数据中捕获按钮的方法很少,例如Repeater,GridView,ListView。
最简单的方法是使用 命令 事件而不是点击事件。
<%-- 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);
}
答案 1 :(得分:0)
如果你想要按钮本身的ID
,你可以将发送者强制转换回按钮并获取它的ID。
protected void Button1_Click(object sender, EventArgs e)
{
Button button = sender as Button;
string id = button.ID;
}
答案 2 :(得分:0)
如果我理解你的问题,你可以根据按钮信息从表中选择字段,例如这样。您可以为不同的按钮使用相同的事件处理程序。希望这会有所帮助。
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;
}