Gridview动态更改行 [英] Gridview dynamically change rows

查看:71
本文介绍了Gridview动态更改行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

<tr>
       <td align="left" class="label" style="height: 23px" valign="top">
           <asp:Label ID="lbl_Scale_pointers" runat="server" Text="Scale pointers"></asp:Label></td>
       <td align="left" class="label" style="width: 1px; height: 23px;" valign="top">
           :</td>
       <td align="left" class="control" style="height: 23px">
           <%--<cc1:DropDownListControl ID="ddlst_Scale_pointers" runat="server">
           </cc1:DropDownListControl>--%>
           <asp:DropDownList ID="ddlst_Scale_pointers" runat="server" AutoPostBack="True" Width="80px">
           <asp:ListItem>1</asp:ListItem>
           <asp:ListItem>2</asp:ListItem>
           <asp:ListItem>3</asp:ListItem>
           <asp:ListItem>4</asp:ListItem>
           <asp:ListItem>5</asp:ListItem>
           <asp:ListItem>6</asp:ListItem>
           <asp:ListItem>7</asp:ListItem>

           </asp:DropDownList>
       </td>
   </tr>
   <tr>
   <td align ="center" class="label" style="height: 23px" valign="top">
   <asp:Label ID="lblcolor" runat="server" Text="Please pick the color for Pointer"></asp:Label>
   </td>
   </tr>

   <tr>
  <%--<td align="center" class="label" style="height: 23px" valign="top">
         <asp:Label Visible="false" ID="Label1" runat="server" Text=""></asp:Label></td>

       <td align="center"  class="label" style="width: 1px; height: 23px;" valign="top">
           </td>--%>
  <td align="center" colspan="3"  class="control" style="height: 23px" valign="top"  >

  <asp:GridView  ID="grdvw1" EnableViewState="true" OnRowDataBound="grdvw1_RowDataBound" runat="server" Width="300px" CellSpacing="3" CellPadding ="3">


   <Columns>
           <asp:TemplateField HeaderText="Pointer No">
           <ItemTemplate>
           <asp:Label Text="" ID="lblPointerNo" runat="server" >
           </asp:Label>
           </ItemTemplate>
           </asp:TemplateField>
   </Columns>

   <Columns>
           <asp:TemplateField HeaderText="Pointer Color">
           <ItemTemplate>
           <asp:TextBox ID="txtcolor" runat="server" class="color" MaxLength="19" Width="200px"></asp:TextBox>
           </ItemTemplate>
           </asp:TemplateField>
   </Columns>

    </asp:GridView>

   </td>

   </tr>







Protected Sub ddlst_Scale_pointers_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ddlst_Scale_pointers.SelectedIndexChanged
       BindGridview(ddlst_Scale_pointers.SelectedValue)
   End Sub
Sub BindGridview(ByVal rownum As Integer)
For i As Integer = 0 To rownum - 1   

    Dim lblTest As Label = CType(grdvw1.FindControl("lblPointerNo"), Label)
    lblTest.Text = i + 1 
    
Next

grdvw1.DataBind()
End sub



选择下拉列表值我需要网格行数



我想动态更改label的值,如果dropdwnlist的值为3,那么lblpionter no应该显示

1

2

3 in 3行所以any1有这个


on selection of dropdownlist value i need number of rows for grid

I want to change the value of label dynamically that is if dropdwnlist has value 3 then the lblpionter no should display
1
2
3 in 3 diff rows so do any1 has the ans for this

推荐答案

你好,



改变gridview源如下。

Hi,

change the gridview source as below.
<columns>
    <asp:templatefield headertext="Pointer No" xmlns:asp="#unknown">
    <itemtemplate>
    <asp:label text='<%#Eval("PointerNo")%>' id="lblPointerNo" runat="server">
    </asp:label>
    </itemtemplate>
    </asp:templatefield>
</columns>



绑定gidview如下。


bind the gidview as below.

Sub BindGridview(ByVal rownum As Integer)
Dim dt as New DataTable
dt.Columns.Add("PointerNo", Type.GetType(string))
dt.AcceptChanges()

For i As Integer = 0 To rownum - 1   
 dt.Rows.Add((i + 1).ToString())
 dt.AcceptChanges()
Next
 
grdvw1.DataSource = dt
grdvw1.DataBind()
End sub





选项二



保持网格视图源不变。在RowDataBoundEvent中添加以下代码。





option Two

keep the grid view source unchanged. add the below code in RowDataBoundEvent.

Dim lbl as Label = CType(e.Row.FindControl("lblPointerNo"), Label)
If lbl IsNot  Nothing THEN
    IF e.Row.RowIndex < Convert.ToInt32(ddlst_Scale_pointers.SelectedValue) THEN
        lbl.Text = (e.Row.RowIndex + 1).ToString();
    End If
End If





希望有帮助



hope it helps


这篇关于Gridview动态更改行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆