- PR -

こんなことできますか?

投稿者投稿内容
ニッシー
常連さん
会議室デビュー日: 2008/05/21
投稿数: 28
投稿日時: 2008-07-11 10:28
ぴあちゃん様
Access様
本当にありがとうございます!お二人ともコードまで公開いただいて感激です。

といっても、実力不足でコードの内容は全然わかりませんが。。。
まずは参考&解読させていただき、自分のプログラムへ反映させてみます。
うまく組み込めたらスゲー嬉しいです!!!!モチベーション超あがりました!

がんばってみます!
本当にありがとうございます!
ニッシー
常連さん
会議室デビュー日: 2008/05/21
投稿数: 28
投稿日時: 2008-07-21 23:25
ACCESS様
先日はサンプルの提供ありがとうございました。

見様見真似と思い、まずはACCESS様と同じもモノを作ってみようと考え、公開いただいたサンプルのコードを真似てコーディングしています。1点つまづいている点があり、アドバイスいただければ幸いです。

■つまづいていること
実行時に下記エラーが発生します
コントロールの作成エラー AjaxHeader1
このコントロールを表示できません。TagPrefixがこのWebフォームに登録されていません

■やったこと
@jQueryをダウンロードしてVS2005で使えるようにしました。(したつもりです)
→ASPXファイルやWebConfigと同じフォルダにjquery-1[1].2.6.jsファイルを配置しました

AVS2005にてASPXファイルを作成して、公開いただいたサンプルコードと同じコードが生成されるようにコントロールを配置しました。

BjQueryのタグ(<uc:)をサンプルを参考に手で追記しました。

C発生したエラーを自分なりに調べた結果WebConfigファイルに以下を追記
<add tagPrefix="jQuery" namespace="JQuery.Web.UI" assembly="jQueryWebControls"/>

まずはAccess様のサンプルと同じものを作りたく、アドバイスいただければと思います。
よろしくお願いいたします。
Access
ぬし
会議室デビュー日: 2002/04/08
投稿数: 829
投稿日時: 2008-07-22 06:33
UserControlの

・AjaxHeader
・AjaxViewCode

は、ヘッダーとソースコードを表示するものですから不要です。

参考までにソースコードを添付しますね。

Timer1.Tickのイベントでは、
以下のようなJavaScriptを埋め込んでいます。

$(function(){
$('table.gridview tr:nth-child(5) div').fadeTo(2000,0.33).fadeTo(2000,1.0);
})


コード:
<%@ 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 Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs)
    Dim rnd As New Random()
    Dim num As String = rnd.Next(7).ToString
    Dim script As String = _
      "$(function(){ " & _
      "  $('table.gridview tr:nth-child(" & num & ") div').fadeTo(2000,0.33).fadeTo(2000,1.0); " & _
      "}) "
        
    ScriptManager1.RegisterStartupScript(Me.Page, GetType(String), "jQuery", script, True)
        
  End Sub

  Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
    lblTime.Text = System.DateTime.Now.ToLongTimeString()
  End Sub
</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
  <title>GridViewにフェイド機能を付加する</title>  
  <style type="text/css">
  .gridview {}
  #gridviewrow { background-color:green; color:White; }
  </style>
  <script src="Scripts/jquery-1.2.6.min.js" type="text/javascript"></script>
</head>
<body>
  <form id="form1" runat="server">
  
  <asp:ScriptManager ID="ScriptManager1" runat="server" />
  
  <asp:UpdatePanel ID="UpdatePanel1" runat="server">
    <ContentTemplate>
      <asp:Label ID="lblTime" runat="server" />

      <asp:GridView ID="GridView1" runat="server" 
        AutoGenerateColumns="False" 
        DataKeyNames="CategoryID"
        CssClass="gridview" 
        DataSourceID="SqlDataSource1">
        <Columns>
          <asp:TemplateField HeaderText="カテゴリー">
            <ItemTemplate>
              <div id="gridviewrow">
                <%#Eval("CategoryID")%>
                &nbsp;-&nbsp;
                <%#Eval("CategoryName")%>
              </div>
            </ItemTemplate>
          </asp:TemplateField>
        </Columns>
      </asp:GridView>
      
    </ContentTemplate>
    <Triggers>
      <asp:AsyncPostBackTrigger ControlID="Timer1" EventName="Tick" />
    </Triggers>
  </asp:UpdatePanel>

  <asp:Timer ID="Timer1" runat="server"
    Interval="3000" ontick="Timer1_Tick" >
  </asp:Timer>

  <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
    ConnectionString="<%$ ConnectionStrings:NwindSQLConnectionString %>" 
    SelectCommand="SELECT [CategoryID], [CategoryName] FROM [Categories]">
  </asp:SqlDataSource>

  </form>
</body>
</html>



_________________
ASP.NET+Ajaxサンプル集 | JavaScript+Ajaxサンプル集
ニッシー
常連さん
会議室デビュー日: 2008/05/21
投稿数: 28
投稿日時: 2008-07-22 07:51
ACCESS様

早速のアドバイスありがとうございます!

頂いたサンプルコードを実行したところ下記エラーがInterval毎に発生いたします
ライン:121719933
文字:1
エラー:オブジェクトを指定してください
コード:0
URL:http://xxxxxxxxxxxxxxxxxxx/Default.aspx

一行ずつ分析してみると
<asp:Timer ID="Timer1" runat="server" Interval="3000" OnTick="Timer1_Tick">
で、OnTick="Timer1_Tick"の記述を外すとエラーは発生しません。
(もちろん背景色がフェードすることもありませんが、、、)

お気づきの点などありましたら、再度アドバイスいただければ幸いです。

よろしくお願いいたします。


ニッシー
常連さん
会議室デビュー日: 2008/05/21
投稿数: 28
投稿日時: 2008-07-25 06:05
ACCESS 様

その後、時間を見て追求しているのですがエラーの場所は
ScriptManager1.RegisterStartupScript(Me.Page, GetType(String), "jQuery", script, True)
のようです。

インスタンスを経由する共有メンバ、定数メンバ、列挙型メンバ、または入れ子にされた型へのアクセスです。正規の式は評価されません。


実行時はイベント毎に以下のエラーが発生します
ライン:121719933
文字:1
エラー:オブジェクトを指定してください
コード:0
URL:http://xxxxxxxxxxxxxxxxxxx/Default.aspx

お気づきの点などありましたら、再度アドバイスいただければ幸いです。

よろしくお願いいたします。
Access
ぬし
会議室デビュー日: 2002/04/08
投稿数: 829
投稿日時: 2008-07-25 07:02
引用:

インスタンスを経由する共有メンバ、定数メンバ、列挙型メンバ、または入れ子にされた型へのアクセスです。正規の式は評価されません。


このエラーは無視してください。

当方の環境では、正常に動作するのですが・・・何が違うのですかね。

他のパソコンでも再現しますか。可能であれば他の環境で実行してみてください。


_________________
ASP.NET+Ajaxサンプル集 | JavaScript+Ajaxサンプル集
ニッシー
常連さん
会議室デビュー日: 2008/05/21
投稿数: 28
投稿日時: 2008-07-31 14:53
ACCESS様
プロジェクト作り直してあげたらサンプル動きました。
どこが悪かったのか。。。

色々とソースをいじってみました。1点質問させてください。

フェードさせる行は1回のTickイベントで1行のみでしょうか?
コードをいじって1回のTickで5行目と6行目がフェードするようにしてみたのですが6行目の方のみフェードが実行されます。

複数行を同時にフェードさせることは可能でしょうか?
よろしければアドバイスいただきたく、よろしくお願いいたします。

以上

Access
ぬし
会議室デビュー日: 2002/04/08
投稿数: 829
投稿日時: 2008-08-01 07:06
引用:

複数行を同時にフェードさせることは可能でしょうか?


可能ですよ。たとえば、1行目と3行目をfadeさせるには以下のようなJavaScriptを埋め込みます。

コード:

$('table.gridview tr:nth-child(1) div').fadeTo(2000,0.33).fadeTo(2000,1.0);
$('table.gridview tr:nth-child(3) div').fadeTo(2000,0.33).fadeTo(2000,1.0);



ライブデモ:
http://jsajax.com/BasicFadeToMultipleRowsArticle1037.aspx

_________________
ASP.NET+Ajaxサンプル集 | JavaScript+Ajaxサンプル集


[ メッセージ編集済み 編集者: Access 編集日時 2008-08-01 08:06 ]

スキルアップ/キャリアアップ(JOB@IT)