demoshop

demo, trying to be the best_

如果您已經利用了GridView顯示出你的資料,但是該資料還需要顯示在其他的地方或是來運用其他運算的話就可以利用這很簡單的方法抓到它。

頁面上先給它一個GridView和TextBox囉(本範例使用北風資料庫)

<asp:GridView OnDataBound="GridView1_DataBound" EmptyDataText="沒有資料錄可顯示。" DataSourceID="SqlDataSource1"
    DataKeyNames="TerritoryID" AutoGenerateColumns="False" runat="server" ID="GridView1">
    <Columns>
        <asp:BoundField SortExpression="TerritoryID" ReadOnly="True" HeaderText="TerritoryID"
            DataField="TerritoryID"></asp:BoundField>
        <asp:BoundField SortExpression="TerritoryDescription" HeaderText="TerritoryDescription"
            DataField="TerritoryDescription"></asp:BoundField>
        <asp:BoundField SortExpression="RegionID" HeaderText="RegionID" DataField="RegionID">
        </asp:BoundField>
    </Columns>
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="連結字串" SelectCommand="SelectCommand=SELECT top(5) [TerritoryID], [TerritoryDescription], [RegionID] FROM [Territories]">
</asp:SqlDataSource>
<asp:TextBox runat="server" ID="TextBox21"></asp:TextBox> 


★注意事項:注意看我們的GridView有用OnDataBound事件,這意思是在GridView資料繫結後才觸動的事件

在CS頁面只需要寫

protected void GridView1_DataBound(object sender, EventArgs e)
   {
       this.TextBox1.Text = this.GridView1.Rows[1].Cells[2].Text;
   } 

★注意事項:Rows[1]是表示第一行,Cells[2]表示第二格,所以我們是取出第一行的第二格文字出來。

如果你是需要抓取隱藏欄位請參考GridView如何抓取已經隱藏的欄位值

衍生使用,既然都可以抓當然也可以改變他的相關值用法就是類似下方囉

protected void GridView1_DataBound(object sender, EventArgs e)
 {
  //先宣告成變數後面比較精簡
 TableCell aa=this.GridView1.Rows[1].Cells[2];
 //如果aa的文字是1的話
 if (aa.Text == "1")
 {
     aa.Text = aa.Text + "元";
 }
     aa.Text  = aa.Text ;
 } 

回應討論