2014-03-27 66 views
0

我綁定與數據表中的網格,有兩列,我現在用的,結果在GridView1的是,的LinkBut​​ton在GridView的動態

HostelName | HostelCode 
    Alpha |  1 
    Bravo |  2 
    Charlie |  3 

現在我想這個HostelCode作爲一個LinkBut​​ton所有記錄在數據庫中,以便我可以在單擊LinkBut​​ton時執行進一步操作。 任何幫助?

我使用此代碼,但它不工作,

  for (int i = 0; i < dt.Rows.Count; i++) 
     { 
      LinkButton lb = new LinkButton(); 
      lb = (LinkButton)GridView1.SelectedRow.FindControl("lbtnSelect"); 
      lb.Text = dt.Rows[1].ToString(); 
     } 

lbtnSelect是我的LinkBut​​ton的ID。

+1

你得到的錯誤是什麼? –

+0

你什麼時候運行代碼('for(int i ...')你正在顯示? – Markus

+0

對象引用未設置爲對象的一個​​實例 這是我在@MuneebZulfiqar第二行循環。 – Hammad

回答

1

您可以使用GridView和eval函數的模板字段鏈接按鈕的LinkBut​​ton在aspx頁面綁定值。

<asp:GridView runat="server" ID="gvrecords" CssClass="Gridview" DataKeyNames="HostelCode" 
      AutoGenerateColumns="false" HeaderStyle-BackColor="#7779AF" HeaderStyle-ForeColor="White" 
      OnRowDataBound="gvrecords_RowDataBound"> 
      <Columns> 
       <asp:BoundField DataField="HostelName" HeaderText="Hostel Name" /> 
       <asp:TemplateField HeaderText="Hostel Code"> 
        <ItemTemplate> 
         <asp:LinkButton ID="lnkbtn" runat="server" OnClick="lnkbtn_Click" Text='<%#Eval("HostelCode")'></asp:LinkButton> 
        </ItemTemplate> 
       </asp:TemplateField> 
      </Columns> 
     </asp:GridView> 
+0

這可以工作,但現在我想獲得我選擇的HostelCode的值,因爲我需要該選定的值以供進一步處理。 – Hammad

+0

生成GridView的RowCommand事件,並且您可以獲取Hostel代碼。 –

0

ASPX CODE

<asp:GridView runat="server" ID="gvrecords" CssClass="Gridview" DataKeyNames="HostelCode" 
      AutoGenerateColumns="false" HeaderStyle-BackColor="#7779AF" HeaderStyle-ForeColor="White" 
      OnRowDataBound="gvrecords_RowDataBound"> 
      <Columns> 
       <asp:BoundField DataField="HostelName" HeaderText="Hostel Name" /> 
       <asp:TemplateField HeaderText="Hostel Code"> 
        <ItemTemplate> 
         <asp:LinkButton ID="lnkbtn" runat="server" OnClick="lnkbtn_Click"></asp:LinkButton> 
        </ItemTemplate> 
       </asp:TemplateField> 
      </Columns> 
     </asp:GridView> 

CS CODE

public partial class Tests : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     if (!IsPostBack) 
     { 
      BindHostelDetails(); 
     } 
    } 
    protected void BindHostelDetails() 
    { 
     gvrecords.DataSource = DBData(); 
     gvrecords.DataBind(); 
    } 
    protected void gvrecords_RowDataBound(object sender, GridViewRowEventArgs e) 
    { 
     if (e.Row.RowType == DataControlRowType.DataRow) 
     { 
      string HostelCode = Convert.ToString(DataBinder.Eval(e.Row.DataItem, "HostelCode")); 
      LinkButton lnkbtnresult = (LinkButton)e.Row.FindControl("lnkbtn"); 
      lnkbtnresult.Text = HostelCode; 
     } 
    } 
    protected void lnkbtn_Click(object sender, EventArgs e) 
    { 

     LinkButton lnkbtn = sender as LinkButton; 
     GridViewRow gvrow = lnkbtn.NamingContainer as GridViewRow; 
     int hostelcode = Convert.ToInt32(gvrecords.DataKeys[gvrow.RowIndex].Value.ToString()); 
     string HostelName = gvrow.Cells[0].Text;  
     Response.Write("<script> alert('" + "Hostel Name :"+ HostelName +" Hostel Code :"+ hostelcode + "'); </script>"); 
    } 
    List<DTest> DBData() 
    { 
     List<DTest> _Dt = new List<DTest>(); 
     _Dt.Add(new DTest { HostelName = "Alpha", HostelCode = "1" }); 
     _Dt.Add(new DTest { HostelName = "Bravo", HostelCode = "2" }); 
     _Dt.Add(new DTest { HostelName = "Charlie", HostelCode = "3" }); 
     return _Dt; 
    } 
} 
public class DTest 
{ 
    public string HostelName { get; set; } 
    public string HostelCode { get; set; } 
} 
相關問題