0

gridview からセル値を取得したいのですが、空の文字列が返さ
れます。radiobuttonlist の selectedindexchanged イベントにコードが実装されています。gridview を繰り返し、コードでセルにアクセスします。しかし、問題はまだ残っています。3 つの itemtemplate を使用し、それぞれに 1 つの要素があります。各要素が独自のcoulmn .aspxを取得するように

      <asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="false" >



               <Columns>
<asp:TemplateField>
    <itemtemplate>
                <asp:Label ID="Label2" runat="server" Text='<%# Eval("qno") %>'>

           </asp:Label>
               </ItemTemplate>
          </asp:TemplateField>

          <asp:TemplateField>

          <ItemTemplate>
                    <asp:Label ID="Label3" runat="server" Text='<%# Eval("description") 
        %>'>

          </ItemTemplate>
          </asp:TemplateField>
    <asp:TemplateField>
    <itemtemplate>
          <asp:RadioButtonList ID="RadioButtonList1" RepeatDirection="Horizontal" 
           runat="server" OnSelectedIndexChanged="changed"  AutoPostBack="true" >


             <asp:ListItem   Value="agree" Selected="True" >

             </asp:ListItem>
               <asp:ListItem 
                Value="disagree">

             </asp:ListItem>
               <asp:ListItem Value="strongagree">

             </asp:ListItem>
               <asp:ListItem Value="strondisagree">

             </asp:ListItem>
                </asp:RadioButtonList>
    </itemtemplate>
    </templatefield>
                </Columns>

           </asp:GridView>

         <asp:Label ID="Labe11" runat="server" ></asp:Label>
        Code behind: public void changed(object sender, EventArgs e) {

              for(int i=0;i<GridView2.Rows.Count;i++)
              {
                  string labtext;
                    RadioButtonList list = 
            GridView2.Rows[i].Cells[2].FindControl("RadioButtonList1") as RadioButtonList;
                   labtext= GridView2.Rows[i].Cells[0].Text;


                   Label1.Text = labtext;


              }



                    }
4

2 に答える 2

0

代わりにこれを試してください:

GridView2.Rows[i].FindControl("RadioButtonList1") as RadioButtonList;

よろしく、 シヴァクマール

于 2012-06-08T18:10:47.333 に答える
0

上記の .aspx ページの HTML をすべて含めましたか? あなたが持っているものはうまくいきません。ItemTemplate は列を形成せず、TemplateField 列に含まれます。

例 (あなたのコードから適応
http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.templatefield.itemtemplate.aspx
およびhttp://msdn.microsoft.com/en-us /library/aa479353.aspx ):

<asp:GridView ID="GridView1" Runat="server" 
    <Columns>

        <asp:TemplateField HeaderText="Description">
            <ItemTemplate>
                <asp:Label ID="Label3" runat="server" Text='<%# Eval("description") %>'>
            </ItemTemplate>
        </asp:TemplateField>

        <asp:TemplateField HeaderText="Choice">
            <ItemTemplate>
                <asp:RadioButtonList ID="RadioButtonList1" RepeatDirection="Horizontal" runat="server" OnSelectedIndexChanged="changed"  AutoPostBack="true" >
                    <asp:ListItem Value="agree" Selected="True" />
                    <asp:ListItem Value="disagree" />
                    <asp:ListItem Value="strongagree" />
                    <asp:ListItem Value="strondisagree" />
                </asp:RadioButtonList>
            </ItemTemplate>
        </asp:TemplateField>

    </Columns>
</asp:GridView>

列ごとに個別の TemplateField 定義が必要です。

于 2012-06-07T16:38:25.020 に答える