-->

如何使用相同的GridView RSS烧制的“Onclientsideselectedindexch

2019-10-16 16:58发布

我有两个控件一个TextBox和一个radcombobox在GridView的ItemTemplate中。 当事件我想要做的就是onclientsideselectedindexchangesradcombobox被触发。 我想显示/隐藏与JavaScript客户端文本框。

这个基本的目的是为了避免回发,以显示其将数据绑定到数据库中的文本框中。

如果无法在客户端做的,然后请建议在服务器端有些另类。

Answer 1:

在我的例子,我有一个模板领域的GridView和它包含一个下拉菜单和一个TextBox。 该OnLoad的JavaScript事件设置文本框的显示风格,以"none" 。 设置OnChange在下拉列表中的事件OnRowDataBound GridView控件的事件并调用你设置文本框的显示风格,你需要什么样的JavaScript函数。

在我的例子,我显示文本框仅当下拉选择的索引是"1"

我所做的这一切在我的代码,请参阅本:GridView的ID="GridView1"

<Columns>
    <asp:TemplateField HeaderText="Order Status">
        <ItemTemplate>
           <asp:DropDownList ID="ddlOrderStatus" runat="server" Width="104px" ToolTip="Select order status">
            </asp:DropDownList><br />
             <asp:TextBox ID="txtShipTrackNo" runat="server" 
      Width="100px" Text='<%# Eval("sct_order_docket_id") %>'></asp:TextBox>
</ItemTemplate>
    </asp:TemplateField>
</Columns>

<script type="text/javascript">
var TargetBaseControl = null;
window.onload = function() {
    try {
    //get target base control.
    TargetBaseControl = document.getElementById('<%= this.GridView1.ClientID %>');
    for (var rowId = 1; rowId < TargetBaseControl.rows.length; ++rowId) {
    var txtShip = TargetBaseControl.rows[rowId].cells[0].getElementsByTagName("input")[0];
    txtShip.style.display = "none";
        }
    }
    catch (err) {
        TargetBaseControl = null;
    }
}

function selectCheck(rowid) 
{
     TargetBaseControl = document.getElementById('<%= this.GridView1.ClientID %>');
     var ddlStatus = TargetBaseControl.rows[rowid].cells[0].getElementsByTagName("select")[0];
     var txtShip = TargetBaseControl.rows[rowid].cells[0].getElementsByTagName("input")[0];
     txtShip.style.display = "none";
     if (ddlStatus.selectedIndex == '1') {
         txtShip.style.display = "block";
     }         
}

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        DropDownList ddlStatus = (DropDownList)e.Row.FindControl("ddlOrderStatus");
        string strFunc = string.Format("return selectCheck('{0}')", e.Row.RowIndex + 1);  
        ddlStatus.Attributes.Add("onchange", strFunc);
    }
}


文章来源: How to find textbox in GridView using javascript function fired on “Onclientsideselectedindexchanged” of a radcombobox in same GridView RSS