tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルDataGridの編集について
記事No311
投稿日: 2003/07/23(Wed) 20:24
投稿者mitu
[OSのVer]:Windows    [VBのVer]:VB.NET  

よろしくお願いします。
VB.NETのASP.NET Webアプリケーションで作成しています。

DataGridにDropDownListとTextBoxを表示して、編集します。
「更新」のCommandButtonをクリックしたら、DropDownListとTextBoxの値を取得し、
ファイルを書き換える処理をしているのですが、
DropDownListとTextBoxの値を取得する部分でうまくいきません。

取得するデータが編集前のデータのままなんですが、何故だかわからず、行き詰っています。
ご存知の方よろしくお願いします。

ソースは以下です。


[.aspxファイル]

<asp:datagrid id="grdData" style="Z-INDEX: 104; LEFT: 92px; POSITION: abs
olute;
   TOP: 113px" runat="server" Width="527px" Height="468px&quo
t; AutoGenerateColumns="False"
   BorderColor="Gray" BackColor="White">
   <ItemStyle BackColor="WhiteSmoke"></ItemStyle>
   <HeaderStyle HorizontalAlign="Center" Height="50px"></Heade
rStyle>
  
   <Columns>
      <asp:BoundColumn DataField="alarm">
    <ItemStyle HorizontalAlign="Center" Width="100px"></Ite
mStyle>
      </asp:BoundColumn>

      <asp:TemplateColumn HeaderText="判定情報">
           <ItemStyle HorizontalAlign="Center" Width="180px"><
/ItemStyle>
           <ItemTemplate>
              <asp:DropDownList ID="ddlInf" runat="server" Width=&qu
ot;120px" Height="25px" />
           </ItemTemplate>
      </asp:TemplateColumn>

      <asp:TemplateColumn HeaderText="判定値">
         <ItemStyle HorizontalAlign="Center" Width="180px"></I
temStyle>
         <ItemTemplate>
            <asp:TextBox ID="txtValue" runat="server" Width="12
0px" Height="22px"
               Text='<%# DataBinder.Eval(Container.DataItem, "Value") %>' /
>
         </ItemTemplate>
      </asp:TemplateColumn>
   </Columns>
</asp:datagrid>

<asp:button id="btnRenew" style="Z-INDEX: 109; LEFT: 674px; POSITION: abs
olute;
   TOP: 312px" runat="server" Width="104" Height="31" Te
xt="更 新">
</asp:button>


[更新ボタンClick イベント]

Private Sub btnRenew_Click(ByVal sender As System.Object, _
                           ByVal e As System.EventArgs) Handles btnRenew.Click

   Dim ddl As DropDownList
   Dim txt As TextBox
   Dim myInf(7) As Long
   Dim myVal(7) As String
   Dim i As Integer

   For i = 0 To 7
      'ドロップダウンリスト
      ddl = grdData.Items(i).Cells(1).FindControl("ddlInf")

      If Not Nothing Is ddl Then
         'ドロップダウンリストの選択インデックス
         myInf(i) = ddl.SelectedIndex
      End If

      'テキストボックス
      txt = grdData.Items(i).Cells(2).FindControl("txtValue")

      If Not Nothing Is txt Then
         'テキストボックスの値
         myVal(i) = txt.Text
      End If
   Next i
End Sub

myInfとmyValに値が上手く格納しません。よろしくお願いします。

[ツリー表示へ]
タイトルRe: DataGridの編集について
記事No317
投稿日: 2003/07/24(Thu) 11:48
投稿者mitu
[OSのVer]:Windows    [VBのVer]:VB.NET  
> [OSのVer]:Windows    [VBのVer]:VB.NET  
>
> よろしくお願いします。
> VB.NETのASP.NET Webアプリケーションで作成しています。
>
> DataGridにDropDownListとTextBoxを表示して、編集します。
> 「更新」のCommandButtonをクリックしたら、DropDownListとTextBoxの値を取得し、
> ファイルを書き換える処理をしているのですが、
> DropDownListとTextBoxの値を取得する部分でうまくいきません。
>
> 取得するデータが編集前のデータのままなんですが、何故だかわからず、行き詰っています。
> ご存知の方よろしくお願いします。
>
> ソースは以下です。
>
>
> [.aspxファイル]
>
> <asp:datagrid id="grdData" style="Z-INDEX: 104; LEFT: 92px; POSITION:
abs
> olute;
>    TOP: 113px" runat="server" Width="527px" Height="468px&
amp;quo
> t; AutoGenerateColumns="False"
>    BorderColor="Gray" BackColor="White">
>    <ItemStyle BackColor="WhiteSmoke"></ItemStyle>
>    <HeaderStyle HorizontalAlign="Center" Height="50px"></He
ade
> rStyle>
>    
>    <Columns>
>       <asp:BoundColumn DataField="alarm">
>     <ItemStyle HorizontalAlign="Center" Width="100px"></Ite
> mStyle>
>       </asp:BoundColumn>
>
>       <asp:TemplateColumn HeaderText="判定情報">
>            <ItemStyle HorizontalAlign="Center" Width="180px">&
lt;
> /ItemStyle>
>            <ItemTemplate>
>               <asp:DropDownList ID="ddlInf" runat="server" Width=
&qu
> ot;120px" Height="25px" />
>            </ItemTemplate>
>       </asp:TemplateColumn>
>
>       <asp:TemplateColumn HeaderText="判定値">
>          <ItemStyle HorizontalAlign="Center" Width="180px"><
;/I
> temStyle>
>          <ItemTemplate>
>             <asp:TextBox ID="txtValue" runat="server" Width="
;12
> 0px" Height="22px"
>                Text='<%# DataBinder.Eval(Container.DataItem, "Value") %>
' /
> >
>          </ItemTemplate>
>       </asp:TemplateColumn>
>    </Columns>
> </asp:datagrid>
>
> <asp:button id="btnRenew" style="Z-INDEX: 109; LEFT: 674px; POSITION:
abs
> olute;
>    TOP: 312px" runat="server" Width="104" Height="31"
Te
> xt="更 新">
> </asp:button>
>
>
> [更新ボタンClick イベント]
>
> Private Sub btnRenew_Click(ByVal sender As System.Object, _
>                            ByVal e As System.EventArgs) Handles btnRenew.Click
>
>    Dim ddl As DropDownList
>    Dim txt As TextBox
>    Dim myInf(7) As Long
>    Dim myVal(7) As String
>    Dim i As Integer
>
>    For i = 0 To 7
>       'ドロップダウンリスト
>       ddl = grdData.Items(i).Cells(1).FindControl("ddlInf")
>
>       If Not Nothing Is ddl Then
>          'ドロップダウンリストの選択インデックス
>          myInf(i) = ddl.SelectedIndex
>       End If
>
>       'テキストボックス
>       txt = grdData.Items(i).Cells(2).FindControl("txtValue")
>
>       If Not Nothing Is txt Then
>          'テキストボックスの値
>          myVal(i) = txt.Text
>       End If
>    Next i
> End Sub
>
> myInfとmyValに値が上手く格納しません。よろしくお願いします。

[ツリー表示へ]
タイトル自己レス
記事No318
投稿日: 2003/07/24(Thu) 11:50
投稿者mitu
すみません。上記の返信は、操作ミスです。

DataGridの編集ですが、私の勘違いがありました。
編集後のデータを取れることが出来ました。

お手数お掛けします。
また、お願いいたします。

[ツリー表示へ]