- ゆきーた
- 会議室デビュー日: 2006/01/13
- 投稿数: 4
|
投稿日時: 2006-01-13 14:48
こんにちは。
グリットのテンプレート列にTextBoxを配置し、
そのTextBoxの列を上下キーを使って移動したいのですが、、、、
不可能なのでしょうか?
|
- かるあ
- ぬし
- 会議室デビュー日: 2003/11/16
- 投稿数: 1190
- お住まい・勤務地: センガワ→ムサシノ
|
投稿日時: 2006-01-13 14:52
これはASP.NETのデータグリッドのことですよね
だとしたら難しいと思いますよ
JavaScriptを使えばやって出来ないことは無いけど・・・
|
- ゆきーた
- 会議室デビュー日: 2006/01/13
- 投稿数: 4
|
投稿日時: 2006-01-13 14:54
説明不足でした。
グリットは、【Webアプリ】のDataGridのことです。
Webアプリで、上下キー移動は、やっぱり無理ですよね?。。
ご意見お待ちしています。
|
- ゆきーた
- 会議室デビュー日: 2006/01/13
- 投稿数: 4
|
投稿日時: 2006-01-13 15:03
かるあさん
返信ありがとうございます。
やっぱり、難しいですか?
JavaScript使っても、大変な作業になるんですよね?。。
うーーん。
ありがとうございました。
|
- かるあ
- ぬし
- 会議室デビュー日: 2003/11/16
- 投稿数: 1190
- お住まい・勤務地: センガワ→ムサシノ
|
投稿日時: 2006-01-13 19:35
DataGridのTemplate列に指定したTextBoxの名前は
DataGridの名前 + : + __ctl + インデックス + : + TextBoxの名前
になりますよね。
これが崩れないと仮定してJavaScriptを組めば出来きますが
あんまりお勧めしませんよ。
|
- ゆきーた
- 会議室デビュー日: 2006/01/13
- 投稿数: 4
|
投稿日時: 2006-01-16 10:28
かるあさん
なるほどです。
とても参考になるご意見ありがとうございました。
そーですね。
やっぱり現実的ではないと思いますが、
どんな感じになるのか、ちょっと試してみます。
ありがとうございました。
|
- えんぞ@?
- ぬし
- 会議室デビュー日: 2004/07/06
- 投稿数: 271
- お住まい・勤務地: はまっこ
|
投稿日時: 2006-01-16 14:15
引用: |
|
ゆきーたさんの書き込み (2006-01-16 10:28) より:
やっぱり現実的ではないと思いますが、
どんな感じになるのか、ちょっと試してみます。
|
学ぶ為に試すのは良いですが、現実的じゃぁないっすね。(^^;
(かな漢字変換中に上下キー押された場合など...を考慮すると)
|
- かるあ
- ぬし
- 会議室デビュー日: 2003/11/16
- 投稿数: 1190
- お住まい・勤務地: センガワ→ムサシノ
|
投稿日時: 2006-01-16 16:39
作ってみたので、なんとなく投下してみる。
IE6で確認、FireFoxでは動きませんでした・・・
コード: |
|
var keyUp = 38;
var keyDown = 40;
var token = ":";
var dataGridName = "";
var textBoxName = "";
var lowIndex = "";
var highIndex = "";
function pageInit(dataGridName, textBoxName, logIndex, highIndex) {
this.dataGridName = dataGridName;
this.textBoxName = textBoxName;
this.lowIndex = logIndex;
this.highIndex = highIndex;
}
/*
* キーコード取得
*/
function getKeyCode(e) {
if (document.all) return event.keyCode;
else if (document.getElementById) return (e.keyCode!=0) ? e.keyCode : e.charCode;
else if (document.layers) return e.which;
}
/*
* 次のコントロール
*/
function toNext(e) {
// カレントコントロール取得
var event = window.event;
var thisControlName = event.srcElement.name;
// 名前の構築
var pre = dataGridName + token + "_ctl";
var post = token + textBoxName;
var indexLength = thisControlName.length - pre.length - post.length;
var currentIndex = parseInt(thisControlName.substr(pre.length, indexLength));
// keyDown と KeyUp の進行方向を取得 それ以外は返却
var increase;
var lastIndex;
var firstIndex;
switch (getKeyCode(e)) {
case keyUp: increase = -1; lastIndex = lowIndex; firstIndex = highIndex; break;
case keyDown: increase = +1; lastIndex = highIndex; firstIndex = lowIndex; break;
default: return;
}
// タブオーダーのループ
if (currentIndex == lastIndex) {
document.getElementById(pre + firstIndex + post).focus();
return;
}
// 進行方向で最初に見つかったものをフォーカス
for (var i = currentIndex; i != lastIndex; i += increase) {
if ((ctls = document.getElementById(pre + (currentIndex += increase) + post)) != null) {
ctls.focus();
break;
}
}
}
|
引用: |
|
(かな漢字変換中に上下キー押された場合など...を考慮すると)
|
うーん、無視で(汗
|