VB.netでWebアプリケーションでのユーザーコントロール(DLL)を試しに作ったのですが(テキストボックスを張り付けただけのもの)、WebアプリケーションにそのDLLを張り付けてもテキストボックスがでてきません。なぜでしょうか?
DLL側のソース(一部)
 Inherits System.Web.UI.UserControl'ユーザーコントロールと定義
 Protected WithEvents TextBox1 As System.Web.UI.WebControls.TextBox'テキストボックスはりつけ

このQ&Aに関連する最新のQ&A

A 回答 (5件)

override protected void OnInit(EventArgs e)


{
Control c = this.LoadControl("../WebApplication1/WebUserControl1.ascx");
Label1.Controls.Add(c);
}


仮想パス '*/WebApplication1/WebUserControl1.ascx' がほかのアプリケーションに割り当てられていますが、これは許可されていません。

とエラーが出てやはり無理ですね。

http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.ph …

この回答への補足

ありがとうございます。一旦しめます。

補足日時:2005/05/25 11:29
    • good
    • 0

> ユーザーコントロールを動的に貼り付け



同一プロジェクトなら
LoadControl("hoge.ascx")
でいいけど、別プロジェクトではやったことない。

この回答への補足

ありがとうございます。
LoadControl("hoge.ascx")
だけだと、表示できませんでした。なにかプロパティの設定とかいるのでしょうか?

補足日時:2005/04/18 14:35
    • good
    • 0

>Inherits System.Web.UI.WebControls.TextBox


>とするとかろうじてテキストボックスは表示されるのです。

それはカスタムコントロールです。

http://www.microsoft.com/japan/msdn/library/ja/v …
より

Web ユーザー コントロール
Visual Studio のツールボックスに追加できない。


ということでカスタムコントロールを作るしか手はないと思う。

この回答への補足

別プロジェクトのユーザーコントロールは使えないということでしょか?
DLL(ユーザーコントロール)を参照設定して、ユーザーコントロールを動的に貼り付けできないのでしょうか?
object.Controls.Add(dllTxt)
みたいな感じで。

補足日時:2005/04/15 17:38
    • good
    • 0

考えてみたら、


別プロジェクトのDLL参照しても、ascxファイルは参照
していない。
外部のユーザーコントロールは使えないのは当然でしょう。

この回答への補足

ありがとうございます。使える場合もあります。
Inherits System.Web.UI.UserControl
ではなく
Inherits System.Web.UI.WebControls.TextBox
とするとかろうじてテキストボックスは表示されるのです。UserControlにTextBoxを張り付けても、TextBoxが表示されないんです。こまりました。

補足日時:2005/04/15 15:40
    • good
    • 0

> WebアプリケーションにそのDLLを張り付けても



DLLを貼り付けるのではなくて、ユーザーコントロールを貼り付けるのでしょう。

でも、別プロジェクトのDLLをツールボックスに登録してもユーザーコントロールは
灰色なので貼り付けできない。
もちろん、カスタムコントロールならOKです。

もしかして、外部のユーザーコントロールは使えないというオチかも。
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qpingでポートの指定

pingでIPアドレスを指定して、通信できるかどうかというのは
よく使いますが、pingでポートを指定して応答するかどうかは調べられるのでしょうか?

よろしくお願いします

Aベストアンサー

pingを含むICMPというプロトコルは、OSIの7レイヤで言うところのL2(同一セグメント内通信)とL3(IPルーティングされた通信)の両方にまたがる、ちょっと珍しいプロトコルです。

IPアドレスは指定できますが、別サブネットに属するIPアドレスに到達できればL3通信、できなければゲートウェイと呼ばれる同一サブネットに属する中継装置からの回答を得るという点でL2(MAC通信ではなく、同一セグメント内通信という意味)通信です。

ポート番号はL4で使用されるアドレスですから、L4機能の疎通確認はping(を含むICMP)ではできません。

FTPの疎通確認であれば、クライアントからサーバに対するTCP/21通信(FTP-CMD)が可能であること(サーバからクライアントへのTCP/21からの応答を含む)+サーバからクライアントに対するTCP/20通信(FTP-DATA)が可能であること(クライアントからサーバへのTCP/21からの応答を含む)が必要でしょう。

監視ソフトによるものであれば、
・クライアントからサーバへのログイン(TCP/21)
・クライアントからサーバへのlsの結果(TCP/20)
で確認すればよいでしょう。

pingを含むICMPというプロトコルは、OSIの7レイヤで言うところのL2(同一セグメント内通信)とL3(IPルーティングされた通信)の両方にまたがる、ちょっと珍しいプロトコルです。

IPアドレスは指定できますが、別サブネットに属するIPアドレスに到達できればL3通信、できなければゲートウェイと呼ばれる同一サブネットに属する中継装置からの回答を得るという点でL2(MAC通信ではなく、同一セグメント内通信という意味)通信です。

ポート番号はL4で使用されるアドレスですから、L4機能の疎通確認はping(を含む...続きを読む

Q文字列の後ろから必要分だけ削除したい。

例1 Dim str As String = "あいうえお1234"

文字列の中の1234だけ削除したい場合は、
str = str.Remove(5,4)
という風に、5文字目の後から4文字削除にすればよいのですが、

例の"あいうえお"の部分の長さが毎回処理する度に異なる場合は、
文字列の頭から何文字目という指定ができないので、”後ろから4文字を削除したい”となります。その場合は、どのようなプロパティを使えばいいのでしょうか。

.NET環境です。

Aベストアンサー

Length(str)で文字数を取得できますので、後ろから4文字目は先頭から何文字目かは計算できると思いますが、どうでしょうか?

QHTTP 401.1エラー 権限がありません の解決方法

会社のイントラネット内で、サーバに構築したシステムにアクセスする際に、
「このページを表示する権限がありません
提供された資格情報にはこのディレクトリまたはページを表示する権限がありません。」
と、HTTP 401.1エラーが出てしまいます。

しかし、他の人のパソコンからは、問題なくアクセスすることができました。
なので、サーバ側ではなくクライアント側の設定のせいだと考えています。

インターネットオプションの「統合Windows認証」が関係する、というのを
ネットで調べていくつか見たのですが、これを使用しても、チェックをはずしても、
どちらでもアクセスできません。
ちなみにアクセスできた人のパソコンでは統合Windows認証はオンになっていました。
また、サーバの設定は、IIS→既定のwebサイト→プロパティ→ディレクトリセキュリティで、
匿名認証と統合Windows認証にチェックを入れています。

さらに、C:\Inetpub\wwwroot\testに、実行ファイルがあるのですが、
testディレクトリで「Everyone」に権限を与えています。

ほかに、何が関係するのでしょうか。また、それをどのように変更すればいいのでしょうか。
本当に初心者なので、お手上げ状態です・・・。
みなさんの知恵をお貸しください。

会社のイントラネット内で、サーバに構築したシステムにアクセスする際に、
「このページを表示する権限がありません
提供された資格情報にはこのディレクトリまたはページを表示する権限がありません。」
と、HTTP 401.1エラーが出てしまいます。

しかし、他の人のパソコンからは、問題なくアクセスすることができました。
なので、サーバ側ではなくクライアント側の設定のせいだと考えています。

インターネットオプションの「統合Windows認証」が関係する、というのを
ネットで調べていく...続きを読む

Aベストアンサー

名前解決の確認はとりあえず、pingを打って応答があればOK。
NGなら、名前解決がうまくいっていません。

うまくいかない場合は、DNSの登録を確認。
DNSを使用していない時は、とりあえずhostsファイルに登録すればOKです。
【例:Windowsのhostsファイルの場所(デフォルト)】
C:\WINDOWS\system32\drivers\etc\hosts

しかし、返信を見るとIISの設定もうまくいっていないようですね。
すいません。私もそんなにIISに詳しくないし、そちらの実環境も見ていないのでなんとも言えませんが、仮想ディレクトリの設定も確認しましたか?
あとは。。。認証を許可するフォルダも間違ってないですよね?
ちなみにサブディレクトリではないですよね?
認証はサブディレクトリにも反映されますのでご注意ください。

あまり、力になれなくてごめんなさい。。。

QASP.NETのサーバー移行に伴うエラーについて教えて下さい

こんばんわ。

localの開発環境で作ったASP.NETのアプリケーションを、サーバーに置いて実行するとエラーが出てしまいます。

色々、調べてhttp://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=12465&forum=7&1のサイトと同じ事を行ったのですがエラーは
解消できず困っています。

ご存知の方、ご教示下さいませ。
よろしくお願い致します。

Aベストアンサー

<customErrors mode="Off"/> の部分だけではなく、
web.config 全体を
<?xml version="1.0"?>
<configuration>
<appSettings/>
<connectionStrings ~DB接続とかあればDB接続情報~/>
<system.web>
<compilation debug="true" strict="false" explicit="true" />
<customErrors mode="Off"/>
</system.web>
</configuration>

に書き直してみてください。

もし、web.config の全書き換えができる状況にない場合は、
可能な範囲で構いませんのでweb.configの情報を頂けたら
助かります!

# 何度もすいません...

Q登録後、呼び出し元ページに戻るには

こんにちは。
ASP.NET2.0を使っています
データベースを閲覧したり修正したりするページを作成しています。

閲覧画面AとBがあり、どちらのページからも修正画面Cに行くことができます。
画面A→画面C
画面B→画面C
ここで修正画面Cでデータを修正後、呼び出されたページに戻りたいのですが、呼び出されたページを取得する方法に困っています
修正後の画面に戻りたいので、javascriptのhistory.back()は使えませんし、Request.UrlReferrerは修正時にポストバックされるからか修正画面Cのアドレスを示してしまっています。

なにか方法はないものでしょうか?よろしくお願いします。

Aベストアンサー

ページの遷移をどのように行っていますか?

ボタンのクリックイベントで Server.Transferで遷移しているならPreviousPageで取得できます

画面Cのメンバーに
dim myPreVious as Page
を追加

画面Cの Page_Lodeイベントで
if IsPostback = FALSE then
  if PreviousPage isnot nothing then
    Session("Previous") = PreviousPage
  end if
Else
  myPrevious = Seccion("Previous")
End if

画面Cの呼び出し元へ戻る場合
if myPrevious isnot Nothing then
  Session("Previous") = Nothing
  Response.Redirect( myPrevious.AppRelativeVirtualPath)
end if
といった具合いで ・・・

QASP.netで、CheckBoxListのSelectedIndexChangedが発生しません!

はじめまして、宜しくお願いします。

ASP.netのC#で開発を行っています。

チェックボックスリストのチェックボックスをチェックした際に、
SelectedIndexChangedイベントが発生しサーバ側で受け取れる
はずだと思っているのですが、全くポストバックされていないようです。

プロパティの「AutoPostBack」はTrueにしています。

ほかに条件はありますでしょうか?
ご存知の方がいらっしゃいましたら、宜しくお願い致します。

Aベストアンサー

もしかして、先ほど、
http://okwave.jp/qa4974802.html
で質問したやり方で、動的に選択項目を生成しているからイベントが発生しないとか?いや、それはないかなぁ。AutoPostBackもTrueみたいですし。

一応、イベント設定方法のやり方は2種類あるのでどちらかお好きな方でおためしください。

方法1:
CheckBoxList を定義している個所に
「OnSelectedIndexChanged="イベント処理用メソッド名"」
を記述する

例:
<asp:CheckBoxList
ID="CheckBoxList1"
runat="server"
AutoPostBack="true"
OnSelectedIndexChanged="CheckBoxList1_SelectedIndexChanged">
</asp:CheckBoxList>

方法2:
Page_Init や Page_Load などのイベントで、
CheckBoxList1.SelectedIndexChanged += new EventHandler(イベント処理用メソッド名);
を記述する

例:
protected void Page_Init(object sender, EventArgs e)
{
  CheckBoxList1.SelectedIndexChanged += new  EventHandler(CheckBoxList1_SelectedIndexChanged);
}

protected void CheckBoxList1_SelectedIndexChanged(object sender, EventArgs e)
{
  // 選択された時の処理を書く
  if (CheckBoxList1.SelectedIndex > -1)
  {
    Label1.Text = CheckBoxList1.SelectedValue;
  }
  else
  {
    Label1.Text = string.Empty; 
  }
}

また、わからなければご連絡ください。

もしかして、先ほど、
http://okwave.jp/qa4974802.html
で質問したやり方で、動的に選択項目を生成しているからイベントが発生しないとか?いや、それはないかなぁ。AutoPostBackもTrueみたいですし。

一応、イベント設定方法のやり方は2種類あるのでどちらかお好きな方でおためしください。

方法1:
CheckBoxList を定義している個所に
「OnSelectedIndexChanged="イベント処理用メソッド名"」
を記述する

例:
<asp:CheckBoxList
ID="CheckBoxList1"
runat="server"
AutoPo...続きを読む

QASP.Net ラベルの内容をすぐに更新したい

大変お世話になっております。
昨年は大変お世話になり、多大なご教授をいただきました。
本年も何卒よろしくお願いいたします。

前々からお聞きしようと思っていたのですが、
処理によってラベルの内容がすぐに反映しないのですが
どのようにすればすぐに反映するのでしょうか?

例えば下記のような場合は、ラベルの内容を初期化したいのですが、
それがされるのは、ボタンの処理後になります。
ボタン処理の前にラベルを更新するにはどうすればいいのでしょうか?

もしかしたら 大変初歩的な質問かもしれませんが、
何卒よろしくお願いいたします。

Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles RecDateButton.Click

  Me.Label1.Text = ""

  ここからボタンの処理が開始します

End Sub

Aベストアンサー

クライアント側で、ボタンがクリックされた瞬間に行う。
具体的には、クライアント側でボタンのonclickイベントで行う。

<input type="submit" onclick="document.getElementById('Label1').innerText = ''">

サーバーコントロールにクライアントイベント記述用のOnClientClickプロパティがあるので、そこに書く。
ポストバック時では遅いので、一回目のリクエストのときにonclickイベント付のボタンをブラウザに返す。

protected void Page_Load(object sender, EventArgs e)
{
Button1.OnClientClick = "document.getElementById('" + Label1.ClientID + "').innerText = ''";
}

サーバー側イベントとクライアント側イベントは別物だといことを理解するべし。

ユーザーがボタンをクリック
→ボタンのクライアントイベント(onclick)
→formのsubmit
→ブラウザがPOST
→ASP.NETがポストバックを受け取る
→Page_Loadやらいろいろ
→ボタンのサーバーイベント(Click)
→Renderやらいろいろ
→ブラウザにHTMLを返す
→ブラウザ側の表示

クライアント側で、ボタンがクリックされた瞬間に行う。
具体的には、クライアント側でボタンのonclickイベントで行う。

<input type="submit" onclick="document.getElementById('Label1').innerText = ''">

サーバーコントロールにクライアントイベント記述用のOnClientClickプロパティがあるので、そこに書く。
ポストバック時では遅いので、一回目のリクエストのときにonclickイベント付のボタンをブラウザに返す。

protected void Page_Load(object sender, EventArgs e)
{
Button1.OnClientClick = "docu...続きを読む


人気Q&Aランキング

おすすめ情報