C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[4]: GridViewのHyperLinkの特定の単語も強調表示し


(過去ログ 73 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■42749 / inTopicNo.1)  GridViewのHyperLinkの特定の単語も強調表示し
  
□投稿者/ サトシ (27回)-(2009/10/21(Wed) 00:11:53)

分類:[ASP.NET (VB)] 

以前GridViewにて特定単語を強調表示する方法の件でお世話になった
http://bbs.wankuma.com/index.cgi?mode=all&namber=42395
の続きの質問です。

GridViewのCell内の文字列の特定の単語を強調表示することは出来る様になったのですが、
HyperLinkを設定したCellの内容が何も表示されなくなってしまいました。
自分なりに原因・解決方法をいろいろやってみたのですがダメです。
GridViewのHyperLinkのCellも文字列が表示され、特定の単語が強調表示される様にしたい
です。
お力を貸して頂けるとうれしいです。

VWD2005(VB)、Access2003

HonTable
|ID| 書籍名 |出版社|  ISBN10  | 
| 1|書籍名A|秀和 |4798024015|
| 2|書籍名B|翔泳社|4798119571|
| 3|書籍名C|毎コミ|4839924384|

<%@ Page Language="VB" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

    Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs)
        If e.Row.RowType = DataControlRowType.DataRow Then
            For i As Integer = 0 To e.Row.Cells.Count - 1
                e.Row.Cells(i).Text = e.Row.Cells(i).Text.Replace("書籍", "<B Style='background-color:#fff495'>書籍</B>")
            Next
        End If
    End Sub
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>無題のページ</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        GridViewのHyperLinkでの単語の強調表示の確認 09/10/19<br />
        <br />
        <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="ID"
            DataSourceID="AccessDataSource1" EmptyDataText="表示するデータ レコードがありません。" OnRowDataBound="GridView1_RowDataBound">
            <Columns>
                <asp:BoundField DataField="ID" HeaderText="ID" ReadOnly="True" SortExpression="ID" />
                <asp:HyperLinkField DataNavigateUrlFields="ISBN10" DataNavigateUrlFormatString="http://bookweb.kinokuniya.co.jp/htm/{0}.html"
                    DataTextField="書籍名" DataTextFormatString="{0}" HeaderText="書籍名HL" />
                <asp:BoundField DataField="出版社" HeaderText="出版社" SortExpression="出版社" />
            </Columns>
        </asp:GridView>
        <asp:AccessDataSource ID="AccessDataSource1" runat="server" DataFile="App_Data\honDB.mdb"
            DeleteCommand="DELETE FROM `HonTable` WHERE `ID` = ?" InsertCommand="INSERT INTO `HonTable` (`ID`, `書籍名`, `出版社`, `ISBN10`) VALUES (?, ?, ?, ?)"
            SelectCommand="SELECT `ID`, `書籍名`, `出版社`, `ISBN10` FROM `HonTable`" UpdateCommand="UPDATE `HonTable` SET `書籍名` = ?, `出版社` = ?, `ISBN10` = ? WHERE `ID` = ?">
            <DeleteParameters>
                <asp:Parameter Name="ID" Type="Int32" />
            </DeleteParameters>
            <InsertParameters>
                <asp:Parameter Name="ID" Type="Int32" />
                <asp:Parameter Name="書籍名" Type="String" />
                <asp:Parameter Name="出版社" Type="String" />
                <asp:Parameter Name="ISBN10" Type="String" />
            </InsertParameters>
            <UpdateParameters>
                <asp:Parameter Name="書籍名" Type="String" />
                <asp:Parameter Name="出版社" Type="String" />
                <asp:Parameter Name="ISBN10" Type="String" />
                <asp:Parameter Name="ID" Type="Int32" />
            </UpdateParameters>
        </asp:AccessDataSource>
        </div>
    </form>
</body>
</html>

引用返信 編集キー/
■42756 / inTopicNo.2)  Re[1]: GridViewのHyperLinkの特定の単語も強調表示し
□投稿者/ やじゅ (1394回)-(2009/10/21(Wed) 06:35:43)
やじゅ さんの Web サイト
No42749 (サトシ さん) に返信
> GridViewのCell内の文字列の特定の単語を強調表示することは出来る様になったのですが、
> HyperLinkを設定したCellの内容が何も表示されなくなってしまいました。

> 自分なりに原因・解決方法をいろいろやってみたのですがダメです。
「RowDataBound HyperLink」のキーワードで検索しました。調べ方は単純ですよね。

GridViewのRowDataBoundイベントでHyperLinkFieldのTextを取得出来ない
http://social.msdn.microsoft.com/Forums/ja-JP/vbgeneralja/thread/c26a22bc-82ca-4f96-8d3e-08be93ee5746
引用返信 編集キー/
■42949 / inTopicNo.3)  Re[2]: GridViewのHyperLinkの特定の単語も強調表示し
□投稿者/ サトシ (28回)-(2009/10/24(Sat) 17:20:07)
2009/10/24(Sat) 17:57:15 編集(投稿者)
No42756 (やじゅ さん) に返信
やじゅさん、アドバイスありがとうございます。
> GridViewのRowDataBoundイベントでHyperLinkFieldのTextを取得出来ない
> http://social.msdn.microsoft.com/Forums/ja-JP/vbgeneralja/thread/c26a22bc-82ca-4f96-8d3e-08be93ee5746

アドバイスを参考に、またグーグルで検索したりで、先ずはHyperLinkのText情報を
TextBox1に表示出来る事を確認するコードを書いていますが、下記コードでは
TextBox1.Text &= hyl.ToString の行で
「オブジェクト参照がオブジェクト インスタンスに設定されていません。」
のエラーが出て動きません。
GridViewのHyperLinkのText情報を取得するには、この方法だとだめなのでしょうか?

Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs)
    If e.Row.RowType = DataControlRowType.DataRow Then
        For i As Integer = 0 To e.Row.Cells.Count - 1
            'TextBox1.Text &= "あ "
            'TextBox1.Text &= e.Row.Cells(i).Text
            Dim hyl As HyperLink = CType(e.Row.FindControl("GridView1"), HyperLink)
            TextBox1.Text &= hyl.Text
        Next
    End If
End Sub

引用返信 編集キー/
■42951 / inTopicNo.4)  Re[3]: GridViewのHyperLinkの特定の単語も強調表示し
□投稿者/ サトシ (29回)-(2009/10/24(Sat) 19:34:32)
2009/10/25(Sun) 08:37:59 編集(投稿者)
> アドバイスを参考に、またグーグルで検索したりで、先ずはHyperLinkのText情報を
> TextBox1に表示出来る事を確認するコードを書いていますが、下記コードでは
> TextBox1.Text &= hyl.ToString の行で
> 「オブジェクト参照がオブジェクト インスタンスに設定されていません。」
> のエラーが出て動きません。
> GridViewのHyperLinkのText情報を取得するには、この方法だとだめなのでしょうか?
> 
> Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs)
>     If e.Row.RowType = DataControlRowType.DataRow Then
>         For i As Integer = 0 To e.Row.Cells.Count - 1
>             'TextBox1.Text &= "あ "
>             'TextBox1.Text &= e.Row.Cells(i).Text
>             Dim hyl As HyperLink = CType(e.Row.FindControl("GridView1"), HyperLink)
>             TextBox1.Text &= hyl.Text
>         Next
>     End If
> End Sub

↓このページ情報をヒントに
http://questionbox.jp.msn.com/qa3482817.html
以下のコードで、GridViewのHyperLinkのText情報がTextBox1に表示される様になりました。
この方法で次のステップに進みます。

Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs)
    If e.Row.RowType = DataControlRowType.DataRow Then
        Dim hyl As HyperLink = CType(e.Row.Cells(1).Controls(0), HyperLink)
        TextBox1.Text &= hyl.Text
    End If
End Sub

引用返信 編集キー/
■42952 / inTopicNo.5)  Re[4]: GridViewのHyperLinkの特定の単語も強調表示し
□投稿者/ サトシ (30回)-(2009/10/24(Sat) 20:00:36)
2009/10/24(Sat) 20:01:14 編集(投稿者)
以下のコードで、目的のGridViewのHyperLinkのText情報の特定の単語を強調表示出来る様に
なりました。ありがとうございました。

Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs)
    If e.Row.RowType = DataControlRowType.DataRow Then
        For i As Integer = 0 To e.Row.Cells.Count - 1
            If i = 1 Then
                Dim hyl As HyperLink = CType(e.Row.Cells(1).Controls(0), HyperLink)
                hyl.Text = hyl.Text.Replace("書籍", "<B Style='background-color:#fff495'>書籍</B>")
            Else
                e.Row.Cells(i).Text = e.Row.Cells(i).Text.Replace("書籍", "<B Style='background-color:#fff495'>書籍</B>")
            End If
        Next
    End If
End Sub

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -