0

データの複数のエントリを含むグリッドビューを表示しています。データフィールドの1つは日付です。ユーザーがグリッドビューの任意の日付をクリックし、それを使用して同じページでプロセスを開始できるようにします。グリッドビューを非表示にし、その特定の日付に関する一般的な情報を表示します。挿入、更新、またはデータベースに関連するものはなく、プロセスの呼び出しのみです。カレンダーから選択して通常のボタンをクリックすることにより、現在手動​​で同じことが行われています。

このフィールドをリンクボタンのみにするにはどうすればよいですか?

私はすでにこの方法でASPに手動でフィールドを追加しようとしました:

<asp:GridView ID="myGrid" runat="server" CssClass="Gridview">
 <Columns>
  <asp:HyperLinkField Text="test"  />
 </Columns>
</asp:GridView>

しかし、それは私が必要としないものである新しいフィールドを作成するだけです。また、コードビハインドで実行する必要があります。これは、後でグリッドビューに送信されるデータテーブルを作成する場所であるため、次のようになります。

Dim myTable As DataTable = New DataTable
Dim column As DataColumn
Dim row As DataRow

column = New DataColumn()
column.ColumnName = "ID"
myTable.Columns.Add(column)

column = New DataColumn()
column.ColumnName = "Date"
myTable.Columns.Add(column)

For myRow As Integer = 0 To days
 row = myTable.NewRow()
 row("ID") = "Some ID"
 row("Date") = datevalue.AddDays(myRow).ToString("dd/MM/yyyy")
 myTable.Rows.Add(row)
Next

myGrid.DataSource = myTable
myGrid.DataBind()

すべてが正常に機能しますが、どういうわけかその日付フィールドをリンクボタンにする必要があります、何かアイデアはありますか?

4

1 に答える 1

1

これには TemplateField を使用する必要があります。

<Columns>
  <asp:TemplateField>
     <ItemTemplate>
        <asp:LinkButton id="LinkButton1" Text="Click Me"            OnClick="LinkButton_Click" runat="server"/>
      </ItemTemplate>
     </asp:TemplateField>
</Columns>

分離コード:

void LinkButton_Click(Object sender, EventArgs e) 
{
   // Insert your code
}

ボタンがクリックされた行に基づいて、特定の情報が必要になる場合があります。Button を使用して CommandArgument を識別子に設定できます。

<asp:Button ID="Button1" runat="server" Text="Click me"  CommandArgument='<%#Eval("YourColumn") %>'/>
于 2013-01-10T20:11:48.070 に答える