开发者

Eval ID on radiobutton in Datalist

开发者 https://www.devze.com 2022-12-11 17:55 出处:网络
my code gota datalist with radio button and iv made it single selectable onitemdatabound....now im trying to evaluate a hiddenfield on basis of selected radio button

my code gota datalist with radio button and iv made it single selectable onitemdatabound....now im trying to evaluate a hiddenfield on basis of selected radio button

my code goes like this

aspx code

<asp:DataList ID="DataList1" runat="server" RepeatColumns = "4"  CssClass="datalist1" 
                RepeatLayout = "Table"  OnItemDataBound="SOMENAMEItemBound"
                CellSpacing="20" onselectedindexchanged="DataList1_SelectedIndexChanged">
                <ItemTemplate>
                <br />
                <table cellpadding = "5px" cellspacing = "0" class="dlTable">
                <tr>
                <td align="center">
                <a href="<%#Eval("FilePath")%>" target="_blank"><asp:Image ID="Im开发者_如何学JAVAage1" runat="server" CssClass="imu" ImageUrl = '<%# Eval("FilePath")%>' 
                Width = "100px" Height = "100px" style ="cursor:pointer" />
                </td>            
                </tr>
                <tr >
                <td align="center">                    
                <asp:RadioButton ID="rdb" runat="server"  OnCheckedChanged="rdb_click" AutoPostBack="True" />            
                <asp:HiddenField ID="HiddenField1" runat="server" Value = '<%#Eval("ID")%>' /> 
                </td>
                </tr>                     
                </table>

 </ItemTemplate> 
</asp:DataList>

code behind

 protected void SOMENAMEItemBound(object sender, DataListItemEventArgs e)
        {
            RadioButton rdb;
            rdb = (RadioButton)e.Item.FindControl("rdb");
            if (rdb != null)
                rdb.Attributes.Add("onclick", "CheckOnes(this);");



        }

  protected void rdb_click(object sender, EventArgs e)
        {
            for (int i = 0; i < DataList1.Items.Count; i++)
            {
                RadioButton rdb;
                rdb = (RadioButton)DataList1.Items[i].FindControl("rdb");
                if (rdb != null)
                {
                    if (rdb.Checked)
                    {
                        HiddenField hf = (HiddenField)DataList1.Items[i].FindControl("HiddenField1");
                        Response.Write(hf.Value);
                    }

                }
            }
        }

the javascript im using...

function CheckOnes(spanChk){


var oItem = spanChk.children;
var theBox= (spanChk.type=="radio") ?
spanChk : spanChk.children.item[0];

xState=theBox.unchecked;
elm=theBox.form.elements;

for(i=0;i<elm.length;i++)
if(elm[i].type=="radio" &&
elm[i].id!=theBox.id)
{
elm[i].checked=xState;
}
}

iam getting an error like this

Microsoft JScript runtime error: Sys.WebForms.PageRequestManagerParserErrorException: The message received from the server could not be parsed. Common causes for this error are when the response is modified by calls to Response.Write(), response filters, HttpModules, or server trace is enabled.
Details: Error parsing near 'pload Demonstration|'.

is there any other way to do this or can nyone plz help to get rid of this problem


The problem is probably your Response.Write() call. Take a look at this blog post. It outlines the reasons why this particular exception shows up, and how to prevent it. Also take a look at this StackOverflow thread.


Okey lets just remove response write...now i have following in my codebehind...rest is same

label5.text=hf.value.ToString();

now i am able to evaluate Label when i use update panel nd nested updatepanel like this

<asp:UpdatePanel ID="UpdatePanel9" runat="server" >
                <ContentTemplate>

                <asp:DataList ID="DataList1" runat="server" RepeatColumns = "4"  
                        CssClass="datalist1"  OnItemDataBound="SOMENAMEItemBound"
                CellSpacing="10" onselectedindexchanged="DataList1_SelectedIndexChanged" 
                        HorizontalAlign="Center" Width="500px">
                <ItemTemplate>
                <br />
                <table cellpadding = "5px" cellspacing = "0" class="dlTable">
                <tr>
                <td align="center">
                <a href="<%#Eval("FilePath")%>" target="_blank"><asp:Image ID="Image1" runat="server" CssClass="imu" ImageUrl = '<%# Eval("FilePath")%>' 
                Width = "100px" Height = "100px" style ="cursor:pointer" />
                </td>            
                </tr>
                <tr >
                <td align="center"> 
                    <asp:UpdatePanel ID="UpdatePanel3" runat="server">
                    <Triggers>
                   <asp:PostBackTrigger ControlID="rdb" />
                    </Triggers>
                          <ContentTemplate>          
                <asp:RadioButton ID="rdb" runat="server"  OnCheckedChanged="rdb_click" AutoPostBack="true"  /> 

                 </ContentTemplate> 
                </asp:UpdatePanel>

                <asp:HiddenField ID="HiddenField1" runat="server" Value = '<%#Eval("ID")%>' /> 
                </td>
                </tr>                     
                </table>

 </ItemTemplate> 

</asp:DataList>


         </ContentTemplate>
         </asp:UpdatePanel>

is there a way to to get this done without full page postback....asyncpostback trigger doesnt seem to work

0

精彩评论

暂无评论...
验证码 换一张
取 消