2012-04-13 5 views
0

注:私は初心者のWeb開発者で、ややPHPに精通しています。私はASP.NETについて興味があって、それをやりたいと思っていました。ボタンからGridViewの「チェックアウト」列を、cardNumberがヌルであるかどうかに基づいてラベルに変更します。

今、私は次のようなテーブルが表示され、ほとんどのライブラリアプリケーションにしようとしています:

Title    - Author  - Status 
The Eye of the World - Robert Jordan - Checked Out 
The Great Hunt  - Robert Jordan - Check Out 
The Dragon Reborn - Robert Jordan - Check Out 

私は、データセット、および次のクエリを実行しTableAdapterの作成しました:

SELECT  books.SerialNumber, books.Title, books.Author, CheckedOut.cardNumber 
FROM   books LEFT OUTER JOIN 
         CheckedOut ON books.SerialNumber = CheckedOut.SerialNumber 

私はこのようにして、以下で使用するためにNULLまたはcardNumberを取得できます。私は(「チェックアウト」)は、ラベルに「チェックアウト」ボタンを変更できるようにしたい

<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" 
    CodeFile="Browse.aspx.cs" Inherits="_Default" %> 

<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent"> 
</asp:Content> 
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent"> 
    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
     DataKeyNames="SerialNumber,cardNumber" DataSourceID="ObjectDataSource1" 
     OnRowDataBound="browseMethod" 
     AllowPaging="True" onselectedindexchanged="GridView1_SelectedIndexChanged"> 
     <Columns> 
      <asp:BoundField DataField="SerialNumber" HeaderText="SerialNumber" 
       InsertVisible="False" ReadOnly="True" SortExpression="SerialNumber" 
       Visible="False" /> 
      <asp:BoundField DataField="Title" HeaderText="Title" SortExpression="Title" /> 
      <asp:BoundField DataField="Author" HeaderText="Author" 
       SortExpression="Author" /> 
      <asp:BoundField DataField="cardNumber" HeaderText="cardNumber" 
       SortExpression="cardNumber" Visible="False" /> 
      <asp:TemplateField HeaderText="Status"> 
       <ItemTemplate> 
        <asp:Button ID="Button1" runat="server" 
         CommandArgument='<%# Eval("cardNumber") %>' 
         Text="Check Out" /> 
       </ItemTemplate> 
      </asp:TemplateField> 
     </Columns> 
</asp:GridView> 
    <asp:ObjectDataSource ID="ObjectDataSource1" runat="server" 
     OldValuesParameterFormatString="original_{0}" SelectMethod="GetLibraryBooks" 
     TypeName="DataSet1TableAdapters.DataTable1TableAdapter"> 
    </asp:ObjectDataSource> 
</asp:Content> 

「cardNumberプロパティ」値のため:ここ

は私のメインページの現在の状態ですその行はNULLです。また、各ボタンが呼び出されたときにイベントを作成し、正しいSerialNumberを取得する方法はありますか?

答えて

0

...これが正しい道であなたを指示する必要があり希望とfalse.Youにそのvisibityを設定

はすでにbutton.Giveためのコマンド引数に反抗していますコマンド名も。

コマンド名用gridview_rowCommandコールバックチェックで
<asp:Button ID="Button1" runat="server"       CommandArgument='<%# Eval("cardNumber") %>'   CommandName="CheckOut"     Text="Check Out" /> 

とtrue.ANotherオプションにそこに偽のラベルにoperations.Set]ボタンの表示を行うには、無効と上記の回答で述べたように/無効]ボタンを有効にすることwoulbスタイルは、ラベルのように見えるように作られています。グリッドビューのコマンド引数には、次のリンクを参照してください。 - http://msdn.microsoft.com/en-us/library/bb907626.aspx

0

グリッド内のすべての行に対して呼び出されるbrowseMethodでは、グリッドがポピュレートされるとき。したがって、条件に基づいてボタンを有効または無効にすることができます。

ボタンを使用してボタンを取得することができます。ボタン名「Button1」によってボタンをキャストし、button.Enabled = trueまたはfalseを呼び出します。 CC番号に..私はあなたが別の制御のラベルを作成することができます

関連する問題