C# 在gridview中的链接按钮事件中选择行的id
我已经在gridview中填充了数据。在gridview中,我有一个链接按钮,单击该按钮将使一个面板可见。现在我想在会话中保留所选行的id,并在面板中使用该id。我还知道如何找到gridview的id,但当特定行的链接按钮被选中时,我无法生成gridview事件选中C# 在gridview中的链接按钮事件中选择行的id,c#,asp.net,gridview,C#,Asp.net,Gridview,我已经在gridview中填充了数据。在gridview中,我有一个链接按钮,单击该按钮将使一个面板可见。现在我想在会话中保留所选行的id,并在面板中使用该id。我还知道如何找到gridview的id,但当特定行的链接按钮被选中时,我无法生成gridview事件选中 private void Bindgrid() { if (Session["CartId"] != null) { DataTable dt = new Data
private void Bindgrid()
{
if (Session["CartId"] != null)
{
DataTable dt = new DataTable();
int introws = 0;
//string mandir_id = Request.QueryString["id"];
string cmdstr = "select p.id,p.name,p.photo_id,p.price,m.name from puja p,mandir m,shoppingcart s where s.session_id='" + Session["CartId"] + "' and p.with_mandir=m.id and p.id=s.with_puja";
//sQLcONN.Open();
MySqlCommand cmd = new MySqlCommand(cmdstr, sQLcONN);
MySqlDataAdapter adp = new MySqlDataAdapter(cmd);
adp.Fill(dt);
GridView1.DataSource = dt;
GridView1.DataBind();
sQLcONN.Close();
}
else { }
}
protected void Linkedit_click(object sender, EventArgs e)
{
pnl1.Visible = true;
}
这是面板内的按钮事件,我实际上需要获取该Id
protected void submit_Click(object sender, EventArgs e)
{
string price = Session["price"].ToString();
WebClient web = new WebClient();
string url = string.Format("http://finance.yahoo.com/d/quotes.csv?e=.csv&f=sl1d1t1&s={0}{1}=X", ddlFrom.SelectedValue.ToUpper(), ddlTo.SelectedValue.ToUpper());
string response = web.DownloadString(url);
string[] values = Regex.Split(response, ",");
decimal rate = System.Convert.ToDecimal(values[1]);
decimal amount = System.Convert.ToDecimal(price);
rate = rate * amount;
//string result = System.Convert.ToString(rate);
//result = rate;
//rate = System.Convert.ToDecimal(lblResult.Text);
lblResult.Text = rate.ToString();
}
请帮我解决这个问题。…使用以下代码:
protected void Linkedit_click(object sender, EventArgs e)
{
LinkButton lnk_Button = (LinkButton)sender;
GridViewRow id = (GridViewRow)lnk_Button.NamingContainer;
Session["id"] = (string)gvrow.Cells[0].Text.ToString();//here you get first coloumn value
pnl1.Visible = true;
}
在GridView中存储您的id,如下所示:-
<asp:TemplateField ShowHeader="False" meta:resourcekey="TemplateFieldResource4">
<ItemTemplate>
<asp:ImageButton ID="imgbtn" runat="server" CausesValidation="False"
ImageUrl="~/Images/img.gif" OnClick="imgbtn_Click" CommandArgument='<%#Eval("Id") %>'/>
</ItemTemplate>
<asp:Button ID="imgbtnSave" CausesValidation="False" runat="server" Text="yourText" OnClick="imgbtnSave_Click"/>
protected void imgbtnSave_Click(object sender, EventArgs e)
{
int id = Convert.ToInt32(Session["Id"]);
// do stuff with your id
}
在面板中,如果您有按钮
,请执行以下操作:-
<asp:TemplateField ShowHeader="False" meta:resourcekey="TemplateFieldResource4">
<ItemTemplate>
<asp:ImageButton ID="imgbtn" runat="server" CausesValidation="False"
ImageUrl="~/Images/img.gif" OnClick="imgbtn_Click" CommandArgument='<%#Eval("Id") %>'/>
</ItemTemplate>
<asp:Button ID="imgbtnSave" CausesValidation="False" runat="server" Text="yourText" OnClick="imgbtnSave_Click"/>
protected void imgbtnSave_Click(object sender, EventArgs e)
{
int id = Convert.ToInt32(Session["Id"]);
// do stuff with your id
}
受保护的无效imgbtnSave_单击(对象发送方,事件参数e)
{
intid=Convert.ToInt32(会话[“id”]);
//用你的身份证做事
}
试试这个
protected void Linkedit_click(object sender, EventArgs e)
{
LinkButton lnkedit = sender as LinkButton;
GridViewRow gvrow = lnkedit.NamingContainer as GridViewRow;
int index = gvrow.RowIndex;
pnl1.Visible = true;
}
gvrow是gridview的当前行,您可以随时执行任何操作…您可以使用rowcommand事件来执行此操作,Nop id不会出现。此处的索引值始终为零。您可能正在单击gridview中的第一行链接,即y?索引为“0”。请点击其他行链接按钮,然后你可以得到行索引…我已经测试了代码,它是从我的工作结束。。。。