| THREE-ONEさん> ありがとうございます。さわやかにGetできました☆ ぼのぼのさん> 何度もありがとうございます。 これだと普通のASPタグのテキストボックスではなく普通のInputタグのテキストボックスで IDは自分で指定してRequestでとればできるんですね☆ 回答が遅くなりましたが、できました。本当にありがとうございます。 一気にいろいろ解決できました。あとはモリモリ作るだけです。 またわからないことがありましたらよろしくお願いします。
※参考までにかのかのがかいたソースです。ベタ&汚いですが、初心者ゆえおゆるしくださいませ。 ■ASPXのソース <%@ Page Language="vb" AutoEventWireup="false" Codebehind="WebForm10.aspx.vb" Inherits="WebApplication2.WebForm10"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <title>WebForm8</title> <meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR"> <meta content="Visual Basic .NET 7.1" name="CODE_LANGUAGE"> <meta content="JavaScript" name="vs_defaultClientScript"> <meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema"> </HEAD> <body MS_POSITIONING="GridLayout"> <form id="Form1" method="post" runat="server"> <asp:repeater id="rptList" runat="server"> <HeaderTemplate> <table border="1"> <tr> <td> 選択 </td> <td> データ </td> </tr> </HeaderTemplate> <ItemTemplate> <tr> <td> <asp:Literal ID="ltlSelect" runat="server"></asp:Literal> </td> <td> <asp:Literal ID="ltlName" runat="server"></asp:Literal> </td> </tr> </ItemTemplate> <FooterTemplate> </table> </FooterTemplate> </asp:repeater><asp:button id="btnData" runat="server" Text="何番目?"></asp:button><br> <asp:label id="Label1" runat="server">が選択されました</asp:label> </form> </body> </HTML> ■ASP.VBのソース Public Class WebForm10 Inherits System.Web.UI.Page
#Region " Web フォーム デザイナで生成されたコード "
'この呼び出しは Web フォーム デザイナで必要です。 <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
End Sub Protected WithEvents rptList As System.Web.UI.WebControls.Repeater Protected WithEvents ltlSelect As System.Web.UI.WebControls.Literal Protected WithEvents ltlName As System.Web.UI.WebControls.Literal
Protected WithEvents btnData As System.Web.UI.WebControls.Button Protected WithEvents Label1 As System.Web.UI.WebControls.Label
'RoomMate Public Structure pRoomMateType Dim strNumber As String '番号 Dim strName As String 'お名前 End Structure Public pdateRoomMate() As pRoomMateType 'データを入れておく変数 Public pstrSelectNumber As String '選択されたやつ
'メモ : 次のプレースホルダ宣言は Web フォーム デザイナで必要です。 '削除および移動しないでください。 Private designerPlaceholderDeclaration As System.Object
Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init ' CODEGEN: このメソッド呼び出しは Web フォーム デザイナで必要です。 ' コード エディタを使って変更しないでください。 InitializeComponent()
Dim strWork As String
''データの取得 Call mInit() End Sub #End Region Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load ' ページを初期化するユーザー コードをここに挿入します。 Dim values As New ArrayList Dim intCnt As Integer
''データの取得 Call mInit()
''データ件数分データを埋め込みます。 For intCnt = 0 To UBound(pdateRoomMate) ''2レコード設定 values.Add(Nothing) Next
rptList.DataSource = values rptList.DataBind()
End Sub ''データ作成時 Private Sub rptList_ItemCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.RepeaterItemEventArgs) Handles rptList.ItemCreated
Dim intCnt As Integer Dim strWork As String Dim strJavaS As String Dim Literal As Literal Dim txtC_Name As TextBox Dim strChecked As String Dim strJavaN As String
'''データの取得 'Call mInit()
''現在データカウント intCnt = e.Item.ItemIndex
''0件目以上から作成する If e.Item.ItemIndex >= 0 Then ''選択済みデータなし If pstrSelectNumber = "" Then '1件目 If intCnt = 0 Then strChecked = "checked" Else strChecked = "" End If ''選択済みデータ有 Else '今回データと等しい場合 If pdateRoomMate(intCnt).strNumber = pstrSelectNumber Then strChecked = "checked" Else strChecked = "" End If End If
'ラジオボタン strJavaS = "<input type='radio' name='select' value='" & pdateRoomMate(intCnt).strNumber & "'" & strChecked & " />" '名前 strJavaN = "<input type='text' name='name" & intCnt & "' value='" & pdateRoomMate(intCnt).strName & "' />"
DirectCast(e.Item.FindControl("ltlSelect"), Literal).Text = strJavaS DirectCast(e.Item.FindControl("ltlName"), Literal).Text = strJavaN End If End Sub
''ボタンがクリックされたとき Sub btnData_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnData.Click '’誰が選択されたをラベルに表示する Dim strWork As String
''データの取得 Call mInit()
strWork = Request("select").ToString
Label1.Text = strWork & "が選択されました。" End Sub
Private Function mInit() As Boolean
Dim intCnt As Integer ''ループカウンター
''配列の初期化 Erase pdateRoomMate
''二人分データをセットする ReDim Preserve pdateRoomMate(1)
'一人目 pdateRoomMate(0).strNumber = "000001" pdateRoomMate(0).strName = "かのかの"
'二人目 pdateRoomMate(1).strNumber = "000002" pdateRoomMate(1).strName = "太郎"
If IsPostBack Then ''選択済み状態ラジオボタン位置 pstrSelectNumber = Request("select") ''名前が変更された人のでーたも取得します。 For intCnt = 0 To UBound(pdateRoomMate) pdateRoomMate(intCnt).strName = Request("name" & intCnt) Next End If End Function End Class
|